📅  最后修改于: 2023-12-03 15:31:06.703000             🧑  作者: Mango
在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中一个非常有用的方法,通过它可以方便地判断一个对象是否具有某个自身属性。同时,在遍历对象属性时使用该方法,也可以避免意外地遍历到原型链上的属性。