84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
配列などを操作する際にcloneメソッドを使うことがありますが、これを使わずに直接値を代入しても良いような気がするのですが、そうするメリットは何でしょうか?メモリを節約するには?浅いコピペ、深いコピペなどもありますが、初心者なのでご容赦ください。 。
光阴似箭催人老,日月如移越少年。
利点は、「=」とは異なり、クローン配列がメモリ内で独立しており、それを使って何でもできることです。
js では、配列とオブジェクトは参照型です。
つまり、クローン作成の目的は、元のデータを汚さずにデータの新しいコピーを生成することです。
ディープコピーとシャローコピーについて:
ご覧のとおり、浅いコピーと深いコピーの違いは、浅いコピーは obj1 の最初の層のみを走査し、obj1 の各属性を obj2 に割り当てますが、属性値がオブジェクト At である場合、深いコピーはそうでないことです。今回は、ディープ コピーは新しい空のオブジェクトを作成し、そのオブジェクトの値を空のオブジェクトに割り当て、その空のオブジェクトを obj3 の属性として返します。
JS プログラミングにおける非常に重要な原則は、「自分のものではないオブジェクトには触れない」です
鮮やかなたとえを言うと、私はあなたに本(物体)を貸しました、そしてあなたはそれを読みたいだけだと思っていましたが、あなたはそれを習字の練習(書くこと)に使ったとき、私はその本を読むことさえできません。通常の内容を返してください。
deepClone はこの問題を解決します。私があなたに本を渡し、あなたはそれをコピーし、その本をそのまま私に返し、あなたはそのコピーを自由に処分できます。
JavaScriptの深いコピーと浅いコピー?
利点は、「=」とは異なり、クローン配列がメモリ内で独立しており、それを使って何でもできることです。
js では、配列とオブジェクトは参照型です。
リーリー リーリーつまり、クローン作成の目的は、元のデータを汚さずにデータの新しいコピーを生成することです。
ディープコピーとシャローコピーについて:
リーリーご覧のとおり、浅いコピーと深いコピーの違いは、浅いコピーは obj1 の最初の層のみを走査し、obj1 の各属性を obj2 に割り当てますが、属性値がオブジェクト At である場合、深いコピーはそうでないことです。今回は、ディープ コピーは新しい空のオブジェクトを作成し、そのオブジェクトの値を空のオブジェクトに割り当て、その空のオブジェクトを obj3 の属性として返します。
JS プログラミングにおける非常に重要な原則は、「自分のものではないオブジェクトには触れない」です
鮮やかなたとえを言うと、私はあなたに本(物体)を貸しました、そしてあなたはそれを読みたいだけだと思っていましたが、あなたはそれを習字の練習(書くこと)に使ったとき、私はその本を読むことさえできません。通常の内容を返してください。
deepClone はこの問題を解決します。私があなたに本を渡し、あなたはそれをコピーし、その本をそのまま私に返し、あなたはそのコピーを自由に処分できます。
JavaScriptの深いコピーと浅いコピー?