关于Object.keys()的问题

新手上路,请多包涵

在MDN中,对于keys的介绍是和for...in一样都是可以遍历除Symbol以外的可枚举的属性.但是我遇到了一个隐式原型的一个问题, 问题如下:

var obj = { 
 a: 1,
 b: 2,
 __proto__: {
     c: 3,
     d: 4,
     __proto__: {
         e: 5
     }
 }
}

console.log(Object.keys(obj)) // ['a', 'b']

console.log(Object.getOwnPropertyNames(obj)); // ['a', 'b']

for ( var i in obj){
    console.log(i)
}
//return a b c d e

请问, 对于__proto__中的隐式原型属性为什么在keys方法中没有被遍历出来呢?

阅读 2.1k
推荐问题
宣传栏