我使用obj.hasOwnProperty
来判断这个对象是否具有此属性,但是当我替换obj[prop] !== undefined
但不正常实现时,我想问一下,为什么这个方法背后不能使用它? / p>
object.hasOwnProperty(prop);
object[prop] !== undefined;
答案 0 :(得分:3)
obj[prop] !== undefined
错误有两个原因:
undefined
将属性明确设置为obj[prop] = undefined;
。在这种情况下,obj.hasOwnProperty(prop)
将返回true
。obj[prop]
将遵循原型链,因此它将返回一个继承的属性。 obj.hasOwnProperty(prop)
仅返回true
如果属性直接存在于对象中,则返回false
以继承属性。