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エラーは、エラークラスを拡張することで拡張できます。これを行う最良の方法は、組み込みのJavaScriptエラークラスを拡張する新しいカスタムエラークラスを作成することです。 以下は、JavaScriptでエラーを拡張するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=de

  2. JavaScriptでイベントを追加する最良の方法は何ですか?

    任意の要素にイベントを追加する最良の方法は、addEventListener()メソッドを使用することです。 以下は、JavaScriptでイベントを追加するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />