下面是一个简单的示例,我想使用 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 循环中显示?
下面是一个简单的示例,我想使用 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
会给你 undefined 因为你正在使用 name 访问属性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"]