网络编程
位置:首页>> 网络编程>> JavaScript>> 真正保险的“有属性”检测

真正保险的“有属性”检测

作者:infinte 来源:infinte博客 发布时间:2010-03-28 13:25:00 

标签:属性,对象,javascript

如何检测某个对象是否有某个属性?第一想到的——没错,in:

"prop" in obj

这很完美,不过,还有不少人热衷下面的方法:

typeof obj["prop"] != 'undefined'

如果不区分“不存在”和“未定义的值”,这也很完美。

但是两种方法都会检测继承来的属性,有什么办法能检测“自己”的属性呢?有:hasOwnProperty:

obj.hasOwnProperty("prop")

但是,你有没有考虑到hasOwnProperty也被重写的状况?

所以,下面的才是王道:

// 在动原型之前var hop = Object.prototype.hasOwnProperty;var has = function(thing, prop) {return hop.call(thing, prop)}

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com