Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

Javascriptでオブジェクトをどのようにディープコピーしますか?


オブジェクトのディープコピーは、コピーするオブジェクト内で遭遇するすべてのオブジェクトを複製します。コピーと元のオブジェクトは何も共有しないため、元のオブジェクトのコピーになります。

最も簡単な方法は、オブジェクトをJSON文字列に変換し、それをJSオブジェクトに戻すことです。ただし、この方法ではメソッドのコピーはできません。

let obj = {
   foo: 1,
   bar: { baz: 'test' }
}
let newObj = JSON.parse(JSON.stringify(obj));
obj.bar.baz = 20;
console.log(obj);
console.log(newObj);

出力

{ foo: 1, bar: { baz: 20 } }  
{ foo: 1, bar: { baz: 'test' } } 

ここでのnewObjは、元のobjへの更新によって変更されないため、ディープコピーは成功しました。


  1. JavaScriptでインポートされたオブジェクトを非構造化するにはどうすればよいですか?

    以下は、JavaScriptでインポートされたオブジェクトを非構造化するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style&g

  2. 多次元JavaScriptオブジェクトを作成するにはどうすればよいですか?

    以下は、多次元JavaScriptオブジェクトを作成するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> &n