0
根据jQuery文档,“并非所有的jQuery对象都创建了===”。jQuery对象比较
包装“对此一个重要的细节‘’行为是每个包装的对象是独一无二的。即使对象是使用相同的选择创建或包含完全相同的DOM元素的引用这是真的。”
我知道如何解决这一点,但为什么是这样的情况?这是JavaScript的一些特定方式吗?
根据jQuery文档,“并非所有的jQuery对象都创建了===”。jQuery对象比较
包装“对此一个重要的细节‘’行为是每个包装的对象是独一无二的。即使对象是使用相同的选择创建或包含完全相同的DOM元素的引用这是真的。”
我知道如何解决这一点,但为什么是这样的情况?这是JavaScript的一些特定方式吗?
是的。 JS中的每个对象都是唯一的,因为o1 === o2
不会成立,除非o1
和o2
是指向同一对象的指针。
{ foo: 1 } === { foo: 1 }; // false
所以jQuery的对象只是遵循同样的规则:
var jq1 = $('.foo');
var jq2 = $('.foo');
jq1 === jq2; // false
唯一的例外是,如果你有,实际上指向同一个jQuery对象变量:
var jq3 = jq1;
jq3 === jq1; // true