0

jQuery のドキュメントによると、「すべての jQuery オブジェクトが作成されるわけではありません ===」。

「この「ラッピング」動作に関する重要な詳細は、ラップされた各オブジェクトが一意であることです。これは、オブジェクトが同じセレクターで作成された場合や、まったく同じ DOM 要素への参照が含まれている場合でも当てはまります。」

ドキュメンテーション

これを回避する方法はわかっていますが、なぜそうなるのでしょうか。これは、JavaScript が動作する特定の方法ですか?

4

1 に答える 1

4

はい。JS のすべてのオブジェクトは一意であり、とが同じオブジェクトへのポインターでない限り、それはo1 === o2当てはまりません。o1o2

{ foo: 1 } === { foo: 1 }; // false

したがって、jQuery オブジェクトは単純に次の同じ規則に従います。

var jq1 = $('.foo');
var jq2 = $('.foo');
jq1 === jq2; // false

唯一の例外は、実際に同じ jQuery オブジェクトを指す変数がある場合です。

var jq3 = jq1;
jq3 === jq1; // true
于 2013-10-21T23:25:07.167 に答える