提问者:小点点

使用FOR/IN循环javascript显示对象属性[重复]


下面是一个简单的示例,我想使用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循环中显示?


共1个答案

匿名用户

这与符号和语法有关

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”]等。