JavaScript のオブジェクトには一意の ID があります。コンストラクターやリテラルなどの式を介して作成するすべてのオブジェクトは、他のすべてのオブジェクトとは異なるものと見なされます。
この背後にある理由は何ですか?
{}==={}//output:false
彼らはどのような理由で異なる扱いを受けているのでしょうか。それらが互いに異なる理由は何ですか?
JavaScript のオブジェクトには一意の ID があります。コンストラクターやリテラルなどの式を介して作成するすべてのオブジェクトは、他のすべてのオブジェクトとは異なるものと見なされます。
この背後にある理由は何ですか?
{}==={}//output:false
彼らはどのような理由で異なる扱いを受けているのでしょうか。それらが互いに異なる理由は何ですか?
これらはオブジェクトの異なるインスタンスであり、個別に変更できます。(現在)似ていても、同じではありません。それらを (プロパティ) 値で比較すると便利な場合もありますが、ステートフルなプログラミング言語では、オブジェクトの等価性は通常、それらの ID です。
このシナリオでは、それらが異なるという事実が重要です。
a={};
b={};
a.some_prop = 3;
b.some_prop
この時点で、それが未定義になることが明らかにわかります。
==
or===
演算子を使用すると、変更したくないオブジェクトのプロパティを変更していないことを確認できます。