下面是一个简单的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循环?
这与符号和语法有关
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"]等等
| 归档时间: |
|
| 查看次数: |
2015 次 |
| 最近记录: |