JavaScript 对象的 Object.hasOwnProperty() 方法详解
Object.hasOwnProperty()
方法检查对象是否拥有给定的属性。
示例
const obj = {};
obj.id = 42;
// 检查obj中是否有id属性
console.log(obj.hasOwnProperty("id"));
// 输出: true
hasOwnProperty()语法
hasOwnProperty()
方法的语法是:
obj.hasOwnProperty(prop);
这里,obj是我们想要搜索属性的对象。
作为一个静态方法,我们需要使用类名Object
来访问hasOwnProperty()
。
hasOwnProperty()参数
hasOwnProperty()
方法接受:
- prop - 要测试的属性的
String
名称或Symbol
。
hasOwnProperty()返回值
hasOwnProperty()
方法返回一个Boolean
值:
true
- 如果对象拥有指定的属性false
- 如果对象没有拥有指定的属性
注释:
- 与
in
运算符不同,此方法不会检查对象的原型链中的属性。 - 即使属性的值为
null
或undefined
,hasOwnProperty()
也会返回true
。
示例:JavaScript对象Object.hasOwnProperty()
// 创建一个带有id属性的对象
const obj = { id: 42 };
// 检查obj中是否存在id
console.log(obj.hasOwnProperty("id"));
// 输出: true
// 检查obj中是否存在name
console.log(obj.hasOwnProperty("name"));
// 输出: false
// 继承的属性返回false
console.log(obj.hasOwnProperty("toString"));
// 输出: false
在上面的示例中,我们创建了一个带有单个属性id的对象obj。
然后我们使用hasOwnProperty()
方法检查obj是否具有id和name属性。
输出表明,对象拥有id属性,但没有拥有name属性。
最后,我们使用hasOwnProperty()
检查对象中是否定义了toString
。
然而,即使toString
是JavaScript中所有对象的属性,我们仍然得到false
作为输出。
这是因为toString
是一个继承属性,而不是直接在对象本身中定义的属性。
推荐阅读: