为什么不推荐直接使用hasOwnProperty?
假如你去维护一个别人写的代码,有人写了这么一段代码
let a = {
hasOwnProperty: function() {
return 'helloword';
}
};
然后你去用
a.hasOwnProperty('keyName')
来判断a对象是否包含keyName属性
那永远返回的是'helloword'
如果担心这种情况,可以直接使用原型链上真正的 hasOwnProperty 方法
({}).hasOwnProperty.call(a, 'keyName'); // false
也可以使用 Object 原型上的 hasOwnProperty 属性
Object.prototype.hasOwnProperty.call(a, 'keyName'); // false