vuejs オブジェクトをコピーして値渡しをする
javascript
でjson
などのオブジェクトをコピーする場合、単純に以下のような方法ではうまくいきません。
var x = {
"商品": {
"バナナ": {
"単価": 100,
"個数": 3
},
"リンゴ": {
"単価": 200,
"個数": 5
}
}
};
var y = x;
y
に値は入りますが、y
はx
そのものを参照している状態なので、y
の値を変更するとx
の値も変更されてしまいます。
y
はx
のオブジェクトをコピーし、x
とは全く別のオブジェクトとして扱いたい場合は少し工夫が必要です。
一度文字列に変換してから代入すれば、別のオブジェクトとして扱われます。
y = JSON.parse(JSON.stringify(x));
vuejs
を使っている場合は以下のようにすればコピーすることができます。
y = Vue.util.extend({}, x);