如何确认某个对象中是否存在指定的属性?
使用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双下划线为查看对象自身隐藏的原型对象属性