6

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

4

1 回答 1

7

这与符号和语法有关

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.propertyObject["property"]Object[property]Object["x"]

于 2013-06-11T16:53:12.630 回答