在 JavaScript 中,hasOwnProperty 方法用于判断一个 对象 是否有某个 属性,如果存在某个属性,则返回 true,如果不存在,则返回 false。
和 in 运算符不同,该方法会忽略掉那些从原型链上 继承 到的属性。
obj.hasOwnProperty(attr);
参数 | 描述 |
---|---|
attr | 需要判断的属性。 |
如果对象 obj 含有属性 attr,则返回 true,否则,返回 false。
所有继承了 Object 的对象都会继承到 hasOwnProperty 方法。这个方法可以用来检测一个对象是否含有特定的自身属性。
和 in 运算符不同,该方法会忽略掉那些从原型链上继承到的属性。
使用 hasOwnProperty 方法,判断对象是否有某个属性
<!DOCTYPE html>
<html>
<head>
<title>JavaScript判断对象属性是否存在</title>
<script type="text/javascript">
console.log("嗨客网(www.haicoder.net)");
function createPerson(name, age, sex){
var person = new Object();
person.name = name;
person.age = age;
person.sex = sex;
person.sayHi = function(){
console.log("I am", this.name, "i am", this.age, "years old", "and my sex is", this.sex);
}
return person;
}
var person = createPerson("HaiCoder", 109, "F");
if (person.hasOwnProperty("name") === false){
console.log("Person has no name attr");
}else{
console.log("Person has name attr, val =", person.name);
}
if (person.hasOwnProperty("score") === false){
console.log("Person has no score attr");
}else{
console.log("Person has score attr, val =", person.score);
}
</script>
</head>
</html>
程序运行后,控制台输出如下:
我们创建了一个 person 对象,接着,我们使用了对象的 hasOwnProperty 方法,判断 person 对象是否含有 name 属性和 age 属性。
如果含有某个属性,那么 hasOwnProperty 方法则返回 true,如果没有某个属性,那么 hasOwnProperty 方法返回 false。
在 JavaScript 中,hasOwnProperty 方法用于判断一个对象是否有某个属性,如果存在某个属性,则返回 true,如果不存在,则返回 false。
和 in 运算符不同,该方法会忽略掉那些从原型链上继承到的属性。