列挙可能なプロパティxを持つオブジェクトpがあります。
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/