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

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

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

然后你去用

a.hasOwnProperty('keyName')

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

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

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

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

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

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

猜你喜欢

转载自blog.csdn.net/qq_37860634/article/details/124898851
今日推荐