【Javascript】変数で参照なしの「値渡し」をしたい

Javascript で配列などプリミティブではない型の変数をコピーする時の話です。

コピーした後の変数を変更したら、コピーする前の変数の値まで変わってしまうというよくある「参照渡し」問題。

↓一度JSON化して文字列にしてから、変数に入れて元に戻すというおもしろい手法を見つけました。

var a, b; a = {x:0,y:0}; b = JSON.stringify(a); // JSON文字列化 b = JSON.parse(b); // JSON文字列化したものを戻す console.log(b); // {x:0,y:0}

この手法が最善策かどうかはわかりませんが、とりあえずメモ。