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

Sta*_*ark 2 javascript jquery

在此输入图像描述

在此输入图像描述

在此输入图像描述

我可以阅读className财产,但hasOwnProperty返回false.我错过了一些东西.

ajm*_*ajm 5

您正在检查的对象不是jQuery对象:它是一个DOM节点.因此,它className从树的更远的地方继承了财产(Element我相信).由于className是继承的,hasOwnProperty因为hasOwnProperty不遍历原型链而返回false .

从问题"有没有办法检查对象是否具有继承属性?" 下面:className上面的继承属性将出现在该对象的原型链中.

在问题的DOM节点示例中:

$(".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
Run Code Online (Sandbox Code Playgroud)