在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
方法中没有被遍历出来呢?
Object.keys
只返回自身的属性名,https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/keys