首页 » 编写高质量代码:改善JavaScript程序的188个建议 » 编写高质量代码:改善JavaScript程序的188个建议全文在线阅读

《编写高质量代码:改善JavaScript程序的188个建议》建议9:不要信任hasOwnProperty

关灯直达底部

hasOwnProperty方法常被用做一个过滤器,用来消除for in语句在枚举对象属性时的弊端。考虑到hasOwnProperty是一个方法,而不是一个运算符,因此,在任何对象中,它可能会被一个不同的函数甚至一个非函数的值所替换。

例如,在下面代码中,obj对象的hasOwnProperty成员被清空了,此时如果再利用这个方法来过滤出obj对象的本地属性就会失败。


var obj={},name;

obj.hasOwnProperty=null;

for(name in obj){

if(obj.hasOwnProperty(name)){

document.writeln(name+':'+obj[name]);

}

}