2 つの違いについて簡単に説明しましょう:
最も明らかな違いは割り当てです。値型の割り当ては、新しい 変数 に割り当てられる実際の copy コピーです:
var a, b = "issax"; a = b; a +="_coder"; console.log(a); //issax_coder console.log(b); //issax
上の例を見てください。b を a に割り当てた後、2 つの変数 a と b は互いに独立しており、値自体が変更されます。互いに影響を与えない、値型です。
次に、参照型を見てください:
var obj_i, obj_ii = { name: 'issax' }; obj_i = obj_ii; obj_i['career'] = 'coder'; console.log(obj_i); //Object {name: "issax", career: "coder"} console.log(obj_ii); //Object {name: "issax", career: "coder"}
ほら、obj_ii の値を obj_i に代入した後、obj_i の内容を変更すると、obi_ii の内容も変更されます。これが参照型です。参照型変数ストレージはコンテンツそのものではなく、コンテンツへのポインタです。はい、値を割り当てるときは、実際にはこのポインタを新しい変数に割り当てるだけです。なぜ上記の状況は同じではないのですか。言うまでもなく同じですか?
周草、私は何のことを話しているのですか? 私はオブジェクト[顔のカバー]の深いコピーについて話しています。上の例を読んだ後、あなたはおそらくそれを理解できるでしょう。浅いコピーと深いコピーとは何ですか? 値型の通常の割り当てプロセスは深いコピーですが、参照型の割り当ては浅いコピーです。
オブジェクトは参照型であるため、通常の割り当てプロセスは浅いコピーですが、場合によっては、オブジェクトを深くコピーする必要もあります。これは GUI について何と言ったでしょうか。
update
time による元の並べ替えが復元されるという要件に遭遇しました。 。これは簡単ではありません。毎回並べ替えするだけです。これを行うのは本当に愚かなことです。最初の並べ替え以外は意味がありますが、2 番目、3 番目、4 番目、5 番目、6 番目、7 番目... それらはすべて繰り返されています。毎回並べ替えるのはパフォーマンスの無駄ですか?次に、ソートされたオブジェクトを保存します...それでは、gg です。オブジェクトは参照型です。最初に直接割り当てました。その後、シーンは非常に恥ずかしく、データはまったく移動しませんでした [顔覆い] ];必要に応じて
属性は
1 つずつコピーされますか?次に、私のオブジェクトはこれに似ています:
Paste_Image.png
本当に再帰的なコピーはsbです。幸いなことに、これは参照をディープコピーします。 [エクスタシー]
Paste_Image.png
以上がJavaScript オブジェクトのディープコピーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。