函数相关:对象中的属性确认

96 阅读1分钟

如何确认某个对象中是否存在指定的属性?

使用in可以实现检查对象中是否存在某个属性,会返回布尔值

function Person(name,age){

this.name = name;

this.age = age;

}

Person.prototype.sayhello = function(){

console.log("Hello");

}

var per1 = new Person("Sam",18);

console.log("name" in per1);

使用in可以检查对象中某个属性是否会发挥作用,但是无法判读此属性是否为其所有,如原型对象中包含此属性,那么输出的结果一样时true,如何仅检查对象自身的属性呢?

使用hasOwnProperty方法可以检查是否完全归属于自身的属性

console.log(per1.hasOwnProperty("name"))

浏览器输出结果为true,则name属性为对象自身所有,同理可以检查sayHello属性是否归属与per对象自身。

hasOwnProperty属于原型对象的原型对象的方法,通过其自身可以完成验证

console.log(per.proto.proto.hasOwnProperty("hasOwnProperty"));

浏览器的返回结果为true,其中双下划线proto双下划线为查看对象自身隐藏的原型对象属性