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;