当原型链上的可枚举属性和目标对象的属性同名时,原型链上的同名属性会被忽略
a = {name: 'wenjun'}
a.__proto__.name = 'ye';
for(item in a) console.log(item) // name
a.__proto__.name2 = 'ye';
for(item in a) console.log(item) // name name2
顺便提下for of
for (var item if arr)
arr 不能是对象,因为对象是不可迭代的
但可以遍历数组,并且item已经是值了,而不是属性名
for of 和for in的另外一点不同是:for of 不会遍历目标原型链上的属性