Object.hasOwnProperty(prop)
hasOwnProperty 是 JavaScript 中对象的方法之一,检查对象是否具有特定属性(非继承而来),并返回一个布尔值。参数是要检查的属性名,如果对象拥有该属性true,反之false。
const user= {
name: '哇哈',
sex: '女',
age: 20
};
console.log(user.hasOwnProperty('name')); // true
console.log(user.hasOwnProperty('height')); // false
这个方法对于判断属性是否是对象自身的属性(而非继承而来)非常有用。注意,它不会检查原型链上的属性。
Object.prototype.hasOwnProperty.call(myObj, prop)
hasOwnProperty.call
是一种使用函数的方式来调用 hasOwnProperty
方法的方法,也就是通过函数调用的方式来执行 hasOwnProperty
方法。参数:user对象和属性名
用于避免对象上的 hasOwnProperty
方法被覆盖或修改,确保调用的是原生的 hasOwnProperty
方法受可能存在的重写或修改的影响。通过使用 call
方法,我们可以指定需要执行 hasOwnProperty
方法的对象,并将要检查的属性作为参数传递给该方法。
const user= {
name: '哇哈',
sex: '女',
age: 18
};
console.log(Object.hasOwnProperty.call(user, 'name')); // true 有name属性
console.log(Object.hasOwnProperty.call(user, 'height')); // false 无height属性