10

JavaScript のオブジェクトには一意の ID があります。コンストラクターやリテラルなどの式を介して作成するすべてのオブジェクトは、他のすべてのオブジェクトとは異なるものと見なされます。

この背後にある理由は何ですか?

{}==={}//output:false

彼らはどのような理由で異なる扱いを受けているのでしょうか。それらが互いに異なる理由は何ですか?

4

6 に答える 6

6

これらはオブジェクトの異なるインスタンスであり、個別に変更できます。(現在)似ていても、同じではありません。それらを (プロパティ) 値で比較すると便利な場合もありますが、ステートフルなプログラミング言語では、オブジェクトの等価性は通常、それらの ID です。

于 2013-04-27T18:17:13.577 に答える
2

このシナリオでは、それらが異なるという事実が重要です。

a={}; 
b={}; 
a.some_prop = 3;

b.some_propこの時点で、それが未定義になることが明らかにわかります。

==or===演算子を使用すると、変更したくないオブジェクトのプロパティを変更していないことを確認できます。

于 2014-07-27T12:45:02.080 に答える