当然,我想这样做代码明智。这并不是说我没有别的办法可以解决这个问题,只是好奇而已。。我怎么知道对象内是否存在字段?
43
A
回答
42
UPDATE:按照Gary Chambers的建议,使用hasOwnProperty
方法。下面的解决方案将起作用,但认为最好使用hasOwnProperty
。
if ('field' in obj) {
}
59
这将忽略通过原型链传递的属性。
if(obj.hasOwnProperty('field'))
{
// Do something
}
1
除了上述,您可以使用下面的方法:
if(obj.myProperty !== undefined) {
}
需要注意的是完全一样的方式,你可以检查密钥是否存在关联数组(这是因为通常对象* * **实际上是关联数组) – 2010-08-13 11:21:26
是的,它就像在Python中一样。我不知道。 – Khoi 2010-08-13 12:16:37
一些短裤会抱怨这种语法。根据@GaryChambers建议的使用hasOwnProperty更安全 – Jayd 2014-06-02 14:11:40