我有一个对象p,具有可枚举的属性x。
var p = Object.create(Object.prototype, {
x: {
value: "frog",
enumerable: true
}
});
我创建了一个对象,它继承自p并覆盖属性x,具有不可枚举的属性
var o = Object.create(p, {
x: {
value: "bird",
enumerable: false
}
});
你怎么看,属性x会在o的 for...in 循环中枚举吗?
for (var n in o) {
console.log(n);
}
好吧,在 Chrome 和 IE9 中,它将被枚举(我认为这很奇怪);在FF中,它不会被枚举。
哪一个是正确的行为?
这是一个完整的例子:http: //jsfiddle.net/hnvsM/3/