我正在尝试访问此对象的属性:
var obj = {hello: 1, world: 2};
这让我回复未定义:
function foo(a) {
for(property in a) {
console.log(a.property);
}
return "foo";
}
foo(obj);
这给出了预期的结果:
function bar(a) {
for(property in a) {
console.log(a[property]);
}
return "bar";
}
bar(obj);
为什么对foo的调用不起作用,而对bar的调用允许我访问属性?
答案 0 :(得分:5)
因为a.property
与a['property']
相同,而不是a[property]
。所以你实际上试图访问属性“property”。
您的第二个代码段使用变量property
,前者使用属性property
。