2016-07-11 8 views
1

2つのJavaScript文字列が同じオブジェクトを参照しているかどうかをチェックできますか?2つのJavaScript文字列が同じオブジェクトを参照しているか確認してください

2つのオブジェクトツリーを通過するとき、2つのオブジェクトが同じ参照かどうかを確認する必要があります。それらのツリーのどこかのインスタンスが文字列である場合、それらが実際に同じインスタンスであるか等しい値であるかを検出する方法はないようです。それとも?

オブジェクトツリーは動的に構築されるため、この場合は文字列のインターンに問題はありません。

+0

質問に「javascript」を含めることができますか? – guest271314

+0

何を試しましたか? 'それらが実際に同じインスタンスであるか等しい値であるかを検出する'あなたは参照について話していますか? – Pogrindis

+0

あなたがしようとしていることの例を教えてもらえますか?なぜオブジェクトをそれ自身と比較する必要があるのか​​わかりません。 – Technoguyfication

答えて

4

短い答えはいいえ、 "文字列"はプリミティブなデータ型であり、JavaScriptはメモリの場所についての情報を提供しません。

var s1 = new String('hello'); // create a string object 
var s2 = s1; // pass it as a reference 
var s3 = new String('hello'); // create another string object w/ same value as "s1" 
console.log(s1 === s2); // true 
console.log(s1 === s3); // false 

はちょうどこのような作成文字列は悪影響が及ぶ可能性があることに注意してください(すなわちtypeof new String('hello') === 'object'):ただし、文字列「オブジェクト」の代わりにそのような、プリミティブを作成することができます。詳細については、Mozillaのドキュメントの "Distinction between string primitives and String objects"を参照してください。

関連する問題