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