Rob*_*cha 2 javascript inheritance prototype prototypal-inheritance prototype-chain
MDN声明:
此外,在迭代对象的属性时,将枚举原型链上的每个可枚举属性.
所以我尝试了这个:
var x = {a: "I am a"};
var z = Object.create(x);
for( i in z )
{
console.dir( i );
if( i == "hasOwnProperty" ) {
console.log( 'found hasOwnProperty' );
}
}
Run Code Online (Sandbox Code Playgroud)
仅输出a但不输出hasOwnProperty.为什么?
因为Object.prototype.hasOwnProperty是不可枚举的:
Object.getOwnPropertyDescriptor(Object.prototype, 'hasOwnProperty')
.enumerable // false
Run Code Online (Sandbox Code Playgroud)
因此,它不会被for...in循环迭代.