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

Wil*_*ill 6 javascript

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

var Object = { x:1, y:2, z:3 };
for (property in Object) {
  console.log(Object.property);
};
Run Code Online (Sandbox Code Playgroud)

它显示未定义.

但如果使用console.log(Object[property]);它有效,并显示1 2 3

为什么我不能用于Object.property显示in/in循环?

Hal*_*yon 6

这与符号和语法有关

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
Run Code Online (Sandbox Code Playgroud)

所以在:

var Object = { x:1, y:2, z:3 };
for (property in Object) {
  console.log(Object.property);
};
Run Code Online (Sandbox Code Playgroud)

property"x","y"然后"z".但Object.property相当于Object["property"].而Object[property]给你Object["x"]等等