js 經過對象屬性名稱獲取屬性值的注意要點

一、不能是變量web

var obj = {};  
obj.AttrName = 'Tom'

注意:經過 對象.屬性名 獲取屬性值的時候,屬性名(AttrName )不能是一個變量。數組

二、能夠是變量svg

原始數據數組:spa

var rawDataList = 
[
    {
        "countDate": "2018-04-08",
        "countNum": "2"
    },
    {
        "countDate": "2018-04-18",
        "countNum": "2"
    },
    {
        "countDate": "2018-04-23",
        "countNum": "7"
    }
 ]

處理上述數據:code

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');

三、總結:
1、若是屬性名稱是常量(固定值),獲取屬性值的方式有:xml

  • 對象.屬性名稱
  • 對象[屬性名稱]

2、若是屬性名稱是一個變量(不固定值),獲取屬性值方式只能是:對象

  • 對象[屬性名稱]