1. ホーム
  2. javascript

[解決済み] JavaScriptのオブジェクトを参照ではなく、新しい変数にコピーするには?[重複している]

2022-04-20 03:17:58

質問

簡単なjsfiddleを書きました こちら ここで、小さなJSONオブジェクトを新しい変数に渡し、元の変数(新しい変数ではない)のデータを修正しますが、新しい変数のデータも同様に更新されます。これは、JSONオブジェクトが参照渡しされたことを意味するのではないでしょうか?

以下は私の簡単なコードです。

var json_original = {one:'one', two:'two'}

var json_new = json_original;

console.log(json_original); //one, two
console.log(json_new); //one, two

json_original.one = 'two';
json_original.two = 'one';

console.log(json_original); //two, one
console.log(json_new); //two, one

JSONオブジェクトのディープコピーを作成して、元の変数を変更しても、新しい変数が変更されないようにする方法はありますか?

どのように解決するのですか?

jQueryを使わず、クローンにしか興味がない場合は、次のようにするとうまくいくことがわかりました。 単純なオブジェクト (コメント参照)。

JSON.parse(JSON.stringify(json_original));

ドキュメンテーション