Javascript 为什么jQuery对象天生是唯一的?
从中阅读有关jQuery对象的内容时,它指出所有jQuery对象都是唯一的,即使它们“即使对象是使用相同的选择器创建的,或者包含对完全相同的DOM元素的引用,这也是正确的。” 因此,例如,以下内容将等同于Javascript 为什么jQuery对象天生是唯一的?,javascript,jquery,Javascript,Jquery,从中阅读有关jQuery对象的内容时,它指出所有jQuery对象都是唯一的,即使它们“即使对象是使用相同的选择器创建的,或者包含对完全相同的DOM元素的引用,这也是正确的。” 因此,例如,以下内容将等同于false: $(“#徽标”)==$(“#徽标”) 为什么jQuery对象都是唯一的 感谢您,因为jQuery本质上使用的是工厂模式,每次调用它时,它都会从选择器创建jQuery对象的新实例 由于这些是不同的实例,它们并不相等 尝试以下操作: $( "#logo" ).get(0) === $(
false
:
$(“#徽标”)==$(“#徽标”)
为什么jQuery对象都是唯一的
感谢您,因为jQuery本质上使用的是工厂模式,每次调用它时,它都会从选择器创建jQuery对象的新实例 由于这些是不同的实例,它们并不相等 尝试以下操作:
$( "#logo" ).get(0) === $( "#logo" ).get(0)
据我所知,这比较了原始的Javascript DOM对象,比如
document.getElementById( "logo" ) === document.getElementById( "logo" )
因为,OOP&引用?jQuery为每个查询结果创建一个新实例。这就是为什么在使用过程中将它们“缓存”在变量中如此重要的原因。所有对象都是唯一的,这就是为什么,“对象”的不同实例并不相同,即使它们包含相同的内容。因为JavaScript中的所有对象都是唯一的<代码>{}==={}为
false
。这是因为虽然它们可能有相同的数据,但它们不是相同的对象。它们在内存中是不同的对象。@RocketHazmat这也是一个很好的观点,因为它不仅是jQuery实现,而且本身也是一种语言设计。值得注意的是,返回的jQuery对象是唯一的,但结果中包含的DOM元素才是真正的元素。例如,$(“a”)===$(“a”)
返回false,但$(“a”)[0]===$(“a”)[0]
返回true。jQuery基本上说,“找到这个元素(或多个元素)并返回一个新的jQuery对象包装它。”正确,但查询结果是另一个对象。它们只是引用同一个DOM元素。是的,我理解这一部分,我只是想知道是否有什么具体原因可以解释为什么相似的对象彼此是唯一的。事实证明,这是因为它们既相似又不同。谁知道呢P