注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

星期五

明天不上班

 
 
 

日志

 
 
关于我

一个特立独行的Java程序员,比较宅,上上网,写博客,听音乐,看电影。

网易考拉推荐

JavaScript 对象属性和 hasOwnProperty 方法  

2013-04-04 20:51:14|  分类: Javascript |  标签: |举报 |字号 订阅

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

我们可以利用hasOwnProperty方法 来识别我们的属性是在对象实例里,还是在该对象的原型(Prototype)里。
当你查看的属性在对象里时则返回 (true)  否则即在(prototype)里返回的是 false;

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

例如: firebug1.9
function Person() {
}

Person.prototype.sex = "man";
Person.prototype.name = "prototype_name";
Person.prototype.age = 26;

var p = new Person();
p.name = "p_name";

console.log(p.name); 
console.log(p.hasOwnProperty("name"));
delete p.name;

console.log(p.name);
console.log(p.hasOwnProperty("name"));
console.log(Person.prototype.constructor);

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

firebug 测试结果:
>>> function Person() {  }    Person.prototype.sex =...);    console.log(Person.prototype.constructor);
p_name
true
prototype_name
false
Person()
  评论这张
 
阅读(301)| 评论(0)
推荐

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017