继承属性检查

时间:2015-04-03 12:36:08

标签: javascript

是否可以判断继承的对象属性是设置为未定义还是根本不存在?

我有一个带有属性名称的格式化字符串,以及一个预期包含该属性的对象。我不关心属性是对象自己还是继承属性,我需要知道它是否存在所以我可以使用它,即使它被设置为未定义,但如果它根本不存在,我需要抛出错误。

我知道这个主题有多少次跳舞,并且有很多关于使用的意见:

if(prop in obj){
}

和这一个:

obj.hasOwnProperty(prop)

虽然我显然不能使用第二种方法,但是当涉及到所有可能的属性值时,第一种方法似乎不可靠。

是否有可靠的方法来检查对象内部或继承的特定属性是否存在,即使其值设置为0或null或未定义?

1 个答案:

答案 0 :(得分:3)

  当涉及到所有可能的属性值时,

if(prop in obj)似乎不可靠。

没有。 in operator根本不关心值,它只检查属性名称。这正是你想要的。