📌  相关文章
📜  hasownproperty() (1)

📅  最后修改于: 2023-12-03 15:31:06.703000             🧑  作者: Mango

Javascript中的hasOwnProperty方法

在Javascript中,hasOwnProperty()是判断一个对象自身属性中是否存在某个属性的方法。它返回一个布尔值,如果属性存在则返回true,否则返回false

使用方法

hasOwnProperty()是Object对象的一个方法,因此可以使用对象实例来调用它。方法接收一个字符串属性名称作为参数。示例代码如下:

const obj = {
  name: 'Tom',
  age: 20
};

console.log(obj.hasOwnProperty('name')); // true
console.log(obj.hasOwnProperty('gender')); // false
注意事项

当使用for...in循环遍历一个对象的属性时,不仅会遍历出对象自身属性,还会遍历出原型链上的属性。因此,在使用hasOwnProperty()时需要注意以下几点:

  • 对象的原型链上的属性也会返回true,所以需要加以区分。
  • 对于普通对象,通过Object.create(null)创建的对象没有原型链,因此调用hasOwnProperty()方法时需要格外注意。

示例代码如下:

const obj = {
  name: 'Tom',
  age: 20
};

const obj2 = Object.create(obj);
obj2.gender = 'male';

for (let prop in obj2) {
  if (obj2.hasOwnProperty(prop)) {
    console.log(`obj2 has own property: ${prop}`);
  } else {
    console.log(`obj2 inherited property: ${prop}`);
  }
}
// Output:
// obj2 inherited property: name
// obj2 inherited property: age
// obj2 has own property: gender
结论

hasOwnProperty()是Javascript中一个非常有用的方法,通过它可以方便地判断一个对象是否具有某个自身属性。同时,在遍历对象属性时使用该方法,也可以避免意外地遍历到原型链上的属性。