JS中的hasOwnProperty()
方法是用来检测一个属性是否是某个对象的自有属性的方法。它是基于原型链的继承机制的,只有当所查询的属性是对象本身的属性时才会返回true。
语法:
object.hasOwnProperty(prop)
其中object
是必需的,表示要检查属性的对象,prop
参数也是必需的,表示要检查的属性名称,传入的参数是字符串类型。hasOwnProperty()
方法返回一个布尔值,如果指定属性是对象的自有属性,返回true
,否则返回false
。
示例一:检测对象的自有属性
const person = {
name: "Tom",
age: 20,
};
console.log(person.hasOwnProperty("name"));// true
console.log(person.hasOwnProperty("gender"));// false
在上面的示例中,我们创建了一个名为person
的对象,并设置了两个属性name
和age
。我们分别用hasOwnProperty()
方法检测了name
和gender
两个属性,结果是name
是对象的自有属性,返回true
,而gender
不是对象的自有属性,返回false
。
示例二:遍历对象属性,检测对象的自有属性
const person = {
name: "Tom",
age: 20,
};
for (const key in person) {
if (person.hasOwnProperty(key)) {
console.log(key + " is a property of person.");
} else {
console.log(key + " is an inherited property.");
}
}
在上面的示例中,我们使用for-in
循环遍历了person
对象的所有属性,然后利用hasOwnProperty()
方法判断当前属性是否为person
对象的自有属性。如果是自有属性,将打印"$key is a property of person.",否则将打印"$key is an inherited property."。
总结:
hasOwnProperty()
方法是判断属性是不是某个对象的自有属性的方法,在使用for-in
循环遍历对象属性时,最好结合使用hasOwnProperty()
方法,以避免因为原型链的继承机制导致的误判问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法 - Python技术站