在for..in
循环中,
为什么作为o.i
访问的属性的值返回undefined
,而o[i]
返回正确的值?
供参考的代码片段:
var object = {
id:2,
name:'axs',
address:'colon street'
};
for(let property in object){
console.log(object.property); // returns undefined
console.log(object[property]); // returns property-value
}
发布于 2018-08-20 15:19:12
o.i
将在Object
中查找属性i
,但当您执行o[i]
时,它将查找已评估的属性i
,该属性可能是:name
、id
等……
在使用dot
表示法获取属性时,不会对变量求值,因此会认为您正在尝试获取属性i
本身。
发布于 2018-08-20 15:47:53
它们是访问对象属性的不同方式。o.i等同于o'i',在你的例子中不存在,所以返回undefined。
发布于 2018-08-20 18:02:00
表达式object.property
返回undefined,因为在object
上找不到名为property
的属性。
https://stackoverflow.com/questions/51925737
复制相似问题