2017-02-07 7 views
0

この例では、ob1とob2を区別するための、検索可能な一意の識別子(つまり、キー、uidなど)がありますか?不平等のこのブール値の違いを越えてjavascriptにオブジェクトの一意の識別子がありますか?

ob1 === ob2; // false 

、低いレベルのユニークな文字が一時的にOB1とOB2にそこに割り当てられている:

var makeObject = function() { 
return {example: 'property'}; 
}; 

var ob1 = makeObject(); 
var ob2 = makeObject(); 

は、今、私たちはそれを知っていますか?その場合、これらのユニークな文字はコンソールからアクセスできますか?

編集: How to determine equality for two JavaScript objects?は本当に私の質問の差別化の側面に入りますので、ありがとうございます。私の疑問の他の部分は、ob2の機械レベルの違い(実用性および/またはユーザーのアクセシビリティを脇に)に焦点を当てており、「メモリの異なる場所」は確かにそれに答えていると思います。

+1

'obj1'と' obj2'で指し示された参照がメモリ内の同じ空間ではないので(両方とも異なるオブジェクトを指す)、falseを返します。 '{} === {}'も偽になります。比較はプロパティについては気にしません。 –

+1

私はこれが重複した質問であると信じています:http://stackoverflow.com/questions/201183/how-to-determine-equality-for-two-javascript-objects and http://stackoverflow.com/questions/1068834/objects -comparison-in-javascript – JohnD

+1

[JavaScriptのオブジェクト比較]の可能な複製(http://stackoverflow.com/questions/1068834/object-comparison-in-javascript) –

答えて

1

一時

OB1とOB2短い答えに割り当てられているが、より低いレベルのユニークな文字です:いいえ、あなたがアクセスすることができると思い、何も。彼らは実際にメモリに別の場所に を指しているのでところで

obj1obj2はあなたの例では等しくない理由があります。これが唯一行われている比較です(これは、JavaScriptの文字列の比較とは異なりますが、ではなくは文字列の値と比較します)。

関連する問題