为什么jQuery对象有一个属性,但hasOwnProperty说它没有?

时间:2018-03-14 12:32:40

标签: javascript jquery

enter image description here

enter image description here

enter image description here

我可以阅读className属性,但hasOwnProperty会返回false。我错过了一些东西。

1 个答案:

答案 0 :(得分:5)

您正在检查的对象不是jQuery对象:它是一个DOM节点。因此,它从树的更远处继承className属性(我相信来自Element)。由于className是继承的,hasOwnProperty返回false,因为hasOwnProperty不会遍历原型链。

从问题“是否有办法检查对象是否具有继承属性?”以下:className以上的$(".comment")[0].hasOwnProperty('className'); // -> false because className comes from the prototype chain. 'className' in $(".comment")[0].__proto__; // -> true: className is inherited from up the chain 等继承属性。

在问题的DOM节点示例中:

{{1}}