我试图理解为什么当我调用下面的函数时结果是“否”,因为属性 c 应该存在。有谁知道为什么?谢谢!!!
var letters = function() {
this.a = 5;
this.b = 20;
};
letters.prototype = {
c: 10
};
var letters = new letters();
function looping(obj){
if (obj.hasOwnProperty(this.c)) {
console.log("ua");
}
else {
console.log("no");
}
}
循环(字母);
最佳答案
它不“拥有自己的属性(property)”c
尽管。 c
是其原型(prototype)的一部分,因此它不是您正在测试的对象自己的属性。
至少,如果您调用obj.hasOwnProperty('c')
,答案就是这样的。正如你可能想要的那样。您实际调用的是obj.hasOwnProperty(window.c)
,即obj.hasOwnProperty(undefined)
,这显然是false
.
关于javascript - hasOwnProperty - 即使拥有该属性也不会显示属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37216210/