javascript - 請問JS函數中[]的含義是什麼?

來源:互聯網
上載者:User
function returnfunc (propertyName) {  return function (obj) {             //-----這行定義並返回了一個閉包,也被稱之為一個匿名函數    return obj[propertyName];         //這裡用方括弧法訪問屬性,因為屬性是變數(returnfunc()函數的參數)  };}var savefunc = returnfunc("name");     //調用returnfunc()var result = savefunc({name:"Picasso"});//調用savefunc()alert(result);                        //返回字串“Picasso”

請問savefunc({name:"Picasso"})中的name:"Picasso"

回複內容:

function returnfunc (propertyName) {  return function (obj) {             //-----這行定義並返回了一個閉包,也被稱之為一個匿名函數    return obj[propertyName];         //這裡用方括弧法訪問屬性,因為屬性是變數(returnfunc()函數的參數)  };}var savefunc = returnfunc("name");     //調用returnfunc()var result = savefunc({name:"Picasso"});//調用savefunc()alert(result);                        //返回字串“Picasso”

請問savefunc({name:"Picasso"})中的name:"Picasso"

帶點的,跟帶[]都是表示對象的屬性工作表示方式,只是後者裡面放的是字串,注意是字串。
首先 執行之後 產生了個變數 var propertyName = "name";
然後:

var savrfunc = function(obj){    return obj[propertyName];}

然後執行了上面的函數 並把傳回值返回給了 result;
裡面的 執行效果就相當於:

var obj = {name:"Picasso"};return obj[propertyName]//上面 已經有這個變了 值是name ;所以就是返回了 obj.name ,相當於把 Picasso給返回出去了。

和.作用一樣,用法不同

var text ='prop';var obj = {  prop:123};obj.prop//123obj.text//undefinedobj[text]//123

propertyName是屬性名稱吧,person[propertyName]就是person['name']

return obj[propertyName]; //這裡用方括弧法訪問屬性,因為屬性是變數(returnfunc()函數的請輸入代碼參數)

你的注釋裡面都寫明了。
對象的屬性有兩種訪問的方式:

  1. obj.attr的形式,書寫簡單

  2. obj[attr]的形式,屬性名稱可以是變數的形式

.和[]都可以訪問對象


出處:《JavaScript 標準參考教程(alpha)》,by 阮一峰

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.