溫馨提示×

hasOwnProperty與in操作符的區(qū)別

小樊
91
2024-06-19 16:45:03

hasOwnProperty 方法用于檢查一個對象是否具有指定屬性,它不會沿著原型鏈查找屬性。而 in 操作符用于檢查一個對象是否具有指定屬性,包括原型鏈上的屬性。

例如,假設(shè)有一個對象 obj,它有一個屬性 prop,并且 prop 是從原型鏈繼承而來的屬性:

function Obj() {
  this.prop = 'value';
}

Obj.prototype = {
  anotherProp: 'anotherValue'
};

var obj = new Obj();

使用 hasOwnProperty 方法和 in 操作符檢查屬性 prop

console.log(obj.hasOwnProperty('prop')); // true
console.log('prop' in obj); // true

使用 hasOwnProperty 方法和 in 操作符檢查屬性 anotherProp

console.log(obj.hasOwnProperty('anotherProp')); // false
console.log('anotherProp' in obj); // true

從上面的例子可以看出,hasOwnProperty 方法只檢查對象本身的屬性,而 in 操作符在檢查時會沿著原型鏈查找屬性。

0