下面是一个简单的samlple,我想使用for / in循环
显示对象属性var Object = { x:1, y:2, z:3 };
for (property in Object) {
console.log(Object.property);
};
它显示未定义。
但如果使用console.log(Object[property]);
则可行,并显示1 2 3
为什么我不能使用Object.property
来显示for / in循环?
答案 0 :(得分:6)
这与符号和语法
有关 Object.property
会为您提供未定义的内容,因为您正在访问名为property
的媒体资源。
如果你有这个对象:
var o = {
property: "value",
value: "foo"
};
o.property; // "value"
o["property"]; // "value" (equivalent)
o.value; // "foo"
o["value"]; // "foo" (equivalent)
o[o.property]; // "foo" no other notation possible
所以:
var Object = { x:1, y:2, z:3 };
for (property in Object) {
console.log(Object.property);
};
property
的值为"x"
,"y"
,然后是"z"
。但Object.property
相当于Object["property"]
。而Object[property]
会为您提供Object["x"]
等等。