在for...in循环中,hasOwnProperty是否会返回false?

7
如果我这样做:
for (var i in obj) {
    if (obj.hasOwnProperty(i)) console.log("Has property: " + i);
    else console.log("Doesn't have property: " + i);
}

obj.hasOwnProperty(i)会返回false吗?如果会,什么情况下会返回?


只有 hasOwnProperty("non-existing") 才会返回 false。 - Shreedhar
当属性是可枚举的,但不是“自有”的,而是继承而来时。 - Oleg V. Volkov
2个回答

3

你能举个例子吗?我不确定在JavaScript中什么是继承属性。 - Juan
当然,可以查看 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty。 - Matthew Blancarte
好的,应该提到原型继承。http://javascript.crockford.com/prototypal.html - Matthew Blancarte

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接