ホームページ  >  に質問  >  本文

javascript - js での clone メソッドの用途は何ですか?

配列などを操作する際にcloneメソッドを使うことがありますが、これを使わずに直接値を代入しても良いような気がするのですが、そうするメリットは何でしょうか?メモリを節約するには?浅いコピペ、深いコピペなどもありますが、初心者なのでご容赦ください。 。

大家讲道理大家讲道理2696日前768

全員に返信(3)返信します

  • typecho

    typecho2017-06-26 10:54:02

    利点は、「=」とは異なり、クローン配列がメモリ内で独立しており、それを使って何でもできることです。

    js では、配列とオブジェクトは参照型です。

    リーリー リーリー

    つまり、クローン作成の目的は、元のデータを汚さずにデータの新しいコピーを生成することです。

    ディープコピーとシャローコピーについて:

    リーリー

    ご覧のとおり、浅いコピーと深いコピーの違いは、浅いコピーは obj1 の最初の層のみを走査し、obj1 の各属性を obj2 に割り当てますが、属性値がオブジェクト At である場合、深いコピーはそうでないことです。今回は、ディープ コピーは新しい空のオブジェクトを作成し、そのオブジェクトの値を空のオブジェクトに割り当て、その空のオブジェクトを obj3 の属性として返します。

    返事
    0
  • 给我你的怀抱

    给我你的怀抱2017-06-26 10:54:02

    JS プログラミングにおける非常に重要な原則は、「自分のものではないオブジェクトには触れない」です

    鮮やかなたとえを言うと、私はあなたに本(物体)を貸しました、そしてあなたはそれを読みたいだけだと思っていましたが、あなたはそれを習字の練習(書くこと)に使ったとき、私はその本を読むことさえできません。通常の内容を返してください。

    deepClone はこの問題を解決します。私があなたに本を渡し、あなたはそれをコピーし、その本をそのまま私に返し、あなたはそのコピーを自由に処分できます。

    返事
    0
  • 阿神

    阿神2017-06-26 10:54:02

    JavaScriptの深いコピーと浅いコピー?

    返事
    0
  • キャンセル返事