Сравнение объектов jQuery

0

Согласно документации jQuery, "Не все объекты jQuery созданы ===."

"Важная деталь в отношении этого" обертывания "поведения заключается в том, что каждый завернутый объект уникален. Это справедливо, даже если объект был создан с тем же селектором или содержит ссылки на те же самые элементы DOM".

документация

Я знаю, как обойти это, но почему это так? Это какой-то конкретный способ поведения JavaScript?

Теги:

1 ответ

4
Лучший ответ

Да. Каждый объект в 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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню