2017-08-10 11 views
1

クライアントサイドのアプリケーション開発に新しいことは、下記の問題についていくらか明確にする必要があります。JSONオブジェクトのシングルトンの動作に混乱がありますか?

私が持っている私は、両方が同じである

今すぐobj2を使用することによって、私はのような名前のプロパティ値を変更し、私のobj2obj1オブジェクト今obj2

var obj2=obj1. 

にそのオブジェクトを割り当てるvar obj1={'name':'Sachin'}

つのオブジェクト

obj2.name="Dravid"; 

今私のobj1obj2プロパティ値が原因でJSONオブジェクトの「sigletone行動の「ドラヴィド」であるとなって両方の名前は?それが正しいか?

今私の質問は:

私は私のobj2が空になっていない理由を私obj1が、その後

obj1={} 

のような空で作られた場合は?

まだそれはその背後にある理由は何obj2={'name':'Dravid'}

を示して?

は、この上で私を助けてもらえます。事前に

おかげで...


+1

「JSON」は文字列であり、JavaScriptオブジェクトではありません – guest271314

答えて

2

私はobj2obj1を割り当て、その後、あなたが最初の代入を行うときと信じobj1とは、あなたがメモリ内の同じ位置に共有の参照をコピーしています。次に空の{ }obj1に割り当てると、メモリ内に新しいオブジェクトが作成され、他の参照が置き換えられます。その時点でobj1obj2には異なる参照があります。

0

In Javascriptオブジェクトは参照として渡されます。したがって、obj1とobj2は変更を加えるときに同じオブジェクトを参照しているため、2つの変数によって参照される1つのオブジェクトのみが変更されます。 obj1を別のオブジェクトに割り当てると、obj2の参照には影響しません。

関連する問題