美文网首页
Object.prototype.hasOwnProperty(

Object.prototype.hasOwnProperty(

作者: 楼下的黑猫不太冷 | 来源:发表于2018-03-01 14:42 被阅读0次

参考: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

相关文章

网友评论

      本文标题:Object.prototype.hasOwnProperty(

      本文链接:https://www.haomeiwen.com/subject/nqbgxftx.html