JavaScript通过对象属性名称获取属性值的注意要点

结论

注意:通过对象.属性名获取属性值的时候,属性名不能是一个变量

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

上述属性名name不能为变量

验证:

原始数据数组:

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

一、如果属性名称是常量(固定值),获取属性值的方式有:

  • 对象.属性名称
  • 对象[属性名称]

二、如果属性名称是一个变量(不固定值),获取属性值方式只能是:

  • 对象[属性名称]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值