Object.prototype.hasOwnProperty()

参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty

hasOwnProperty这个方法可以用来检测一个对象是否含有特定的自身属性,即是用来判断一个属性是定义在对象本身而不是继承自原型链的,

obj.hasOwnProperty(prop);

在JavaScript中没有将hasOwnProperty设置为关键词,所以就会出现设置hasOwnProperty为函数名的情况

var foo= {
    hasOwnProperty = function () {
        return false;
    },
    bar: 'Here be dragons'
}

那么在使用foo.hasOwnProperty(‘bar’)时,始终是返回false
于是就可以用以下这种方式来解决这个问题(使用原型链上真正的hasOwnProperty()方法)

// 如果担心这种情况,可以直接使用原型链上真正的 hasOwnProperty 方法
({}).hasOwnProperty.call(foo, 'bar'); // true
// 也可以使用 Object 原型上的 hasOwnProperty 属性
Object.prototype.hasOwnProperty.call(foo, 'bar'); // true
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。