JavaScript 对象属性和 hasOwnProperty 方法

当为对象实例添加一个属性时,他会覆盖该对象的原型中的具有相同属性名的属性,当我们访问该对象的属性时首先访问的是该对象实例中的属性,如果该属性不存在则访问其原型中的属性。

我们可以利用hasOwnProperty方法 来识别我们的属性是在对象实例里,还是在该对象的原型(Prototype)里。

当你查看的属性在对象里时则返回 (true)否则即在(prototype)里返回的是 false;

只有当我们删除 该属性时,才能访问到 其原型里德属性。

例如:

<script type="text/javascript">
function Person()
{
 Person.prototype.sex="男";
 Person.prototype.name="我的名字";
 Person.prototype.age=26;
}
var p=new Person();
p.name="哈哈";

alert(p.name);//哈哈
alert(p.hasOwnProperty("name"));//true;
delete p.name;

alert(p.name);//我的名字;

alert(p.hasOwnProperty("name"));//false;


alert(Person.prototype.constructor);//弹出的是该对象的构造函数 原型中的 constructor属性指向的是 其所在对象的构造函数;

</script>

所以我们利用hasOwnProperty()方法就可知道什么时候访问的是对象的属性,什么时候访问的是其原型中的属性;

原文地址:https://www.cnblogs.com/lovejunxia/p/2017879.html