obj.hasOwnProperty(key)
是 JavaScript 中用于检查对象是否具有指定属性(不包括原型链上的属性)的方法。
hasOwnProperty()
方法是从 Object.prototype
继承而来的,在每个对象实例中都可以调用。它接受一个参数 key
,表示要检查的属性名,如果对象自身包含具有指定名称的属性,则返回 true
,否则返回 false
。
1 let obj = { 2 name : 'red', 3 age : '18' 4 } 5 console.log(obj.hasOwnProperty('name')) //true 6 console.log(obj.hasOwnProperty('gender')) //false
hasOwnProperty()
方法的原理:
1.首先,它检查调用该方法的对象是否包含指定的属性名称作为自身属性。
2.如果对象自身包含指定属性,则返回 true
;如果对象没有该属性或该属性是继承而来的,则返回 false
。
需要注意的是,hasOwnProperty()
方法只检查对象自身的属性,不会检查原型链上的属性。这意味着如果属性是通过原型链继承而来的,hasOwnProperty()
方法会返回 false
。因此,在判断一个对象是否包含某个属性时,通常先使用 hasOwnProperty()
方法来确定属性是否是对象自身的属性,然后再根据需要进一步处理。