假如你去维护一个别人写的代码,有人写了这么一段代码

let a = {
hasOwnProperty: function() {
return '你挚爱的强哥';
}
};

然后你去用

a.hasOwnProperty('keyName')

来判断a对象是否包含keyName属性

那永远返回的是'你挚爱的强哥'

为什么我不推荐你直接使用hasOwnProperty?_开发语言

如果担心这种情况,可以直接使用原型链上真正的 hasOwnProperty 方法

({}).hasOwnProperty.call(a, 'keyName'); // false

也可以使用 Object 原型上的 hasOwnProperty 属性

Object.prototype.hasOwnProperty.call(a, 'keyName'); // false

为什么我不推荐你直接使用hasOwnProperty?_ecmascript_02