Object.assign()は浅いコピーです
オブジェクトのマージ:
var o1 = {
a: 1 };
var o2 = {
b: 2 };
var o3 = {
c: 3 };
var obj = Object.assign(o1, o2, o3);
console.log(obj); // {
a: 1, b: 2, c: 3 }
console.log(o1); // {
a: 1, b: 2, c: 3 }, 注意目标对象自身也会改变。
Vueのスキル
Object.assign()には上記の特性があるため、Vueでは次のように使用できます。
Vueコンポーネントには、次のような要件がある場合があります。場合によっては、Vueコンポーネントのデータデータをリセットする必要があります。この時点で、コンポーネントthis.$data
の現在の状態のデータとthis.$options.data()
初期状態のデータを取得できます。次に、それを使用Object.assign(this.$data, this.$options.data())
してデータの現在の状態を初期状態にリセットします。これは非常に便利です。