使用for / in循环javascript显示对象属性

display object properties using for/in loop javascript

本问题已经有最佳答案,请猛点这里访问。

下面是一个简单的samlple,我想使用for/in循环显示对象属性

1
2
3
4
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的属性。

如果您有此对象:

1
2
3
4
5
6
7
8
9
10
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

所以在:

1
2
3
4
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"]等。