js 通过对象属性名称获取属性值的注意要点
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、总结:
一、如果属性名称是常量
(固定值),获取属性值的方式有:
对象.属性名称
对象[属性名称]
二、如果属性名称是一个变量
(不固定值),获取属性值方式只能是:
对象[属性名称]