JS 基础学习

hasOwnProperty函数

为了判断一个对象是否包含自定义属性而不是原型链上的属性,我们需要继承自object.prototype的hasOwnProperty方法。

1 Object.prototype.bar = 1;
2 var foo = {far:undefined};
3 
4 alert(foo.bar); //1
5 alert(foo.hasOwnProperty('bar')); //false
6 alert(foo.hasOwnProperty('far')); //true

hasOwnProperty 作为属性

当一个对象碰巧用到hasOwnProperty作为属性时,这时如果用hasOwnProperty去判断该对象是否包含自定义属性,就不能得到正确的结果,只能引用外部的

hasOwnProperty函数

 1 var bar = 
 2 {
 3     hasOwnProperty:function()
 4     {
 5         return false;
 6     },
 7     foo : 'hi'
 8 };
 9 
10 alert(bar.hasOwnProperty('foo')); //false
11 //使用其它对的hasOwnProperty
12 alert({}.hasOwnProperty.call(bar,'foo')); //true;
posted @ 2012-10-18 11:28  LMeteor  阅读(160)  评论(0编辑  收藏  举报