1、不能是變量
var obj = {}; obj.AttrName = 'Tom'
注意:通過 對象.屬性名 獲取屬性值的時候,屬性名(AttrName )不能是一個變量。
2、可以是變量
原始數據數組:
var rawDataList = [ { "countDate": "2018-04-08", "countNum": "2" }, { "countDate": "2018-04-18", "countNum": "2" }, { "countDate": "2018-04-23", "countNum": "7" } ]
處理上述數據:
function Day2Mon2Year(dataList,prop){ for(var i = 0; i < dataList.length; i++){ var obj = rawDataList[i] //報錯:Uncaught TypeError: Cannot read property 'replace' of undefined var dateAttr = obj.prop //不報錯:因為prop是變量,獲取方式不能是通過.屬性名稱 var dateAttr = obj[prop] } } //調用報錯:Uncaught TypeError: Cannot read property 'replace' of undefined Day2Mon2Year.(rawDataList,'countDate');
3、總結:
一、如果屬性名稱是常量
(固定值),獲取屬性值的方式有:
對象.屬性名稱
對象[屬性名稱]
二、如果屬性名稱是一個變量
(不固定值),獲取屬性值方式只能是:
對象[屬性名稱]