js中的hasOwnProperty 函数
为了判断一个对象是否包含自定义属性而不是原型链上的属性, 我们需要使用继承自 Object.prototype 的 hasOwnProperty 方法。
备注:
和 in 操作符一样,for in 循环同样在查找对象属性时遍历原型链上的所有属性。
// 修改 Object.prototype
Object.prototype.bar = 1;
var foo = {moo: 2};
for(var i in foo) {
console.log(i); // 输出两个属性:bar 和 moo
}
// foo 变量是上例中的
for(var i in foo) {
if (foo.hasOwnProperty(i)) {
console.log(i); //输出 moo
}
}
可参考:
https://bonsaiden.github.io/JavaScript-Garden/zh/#object.hasownproperty