下面是一个简单的示例,我想使用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循环中显示?
这与符号和语法有关
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);
};
属性
的值是“x”
、“y”
然后是“z”
。但是object.property
等同于object[“property”]
。而对象[property]
则提供对象[“x”]
等。