中級 › スプレッド構文{ ...obj }はネストした値までは複製しない(浅いコピー) › パターン3
スプレッド構文{ ...obj }はネストした値までは複製しない(浅いコピー)
{ ...obj }や[...arr]は最上位のプロパティだけをコピーします。
1 const state = { tags: ["a", "b"] }; 2 const copy = ______________________; ^ 3 copy.tags.push("c"); 4 console.log(state.tags.length);
出力: 3期待: 2 (エラーにはなりません)
空欄を埋めて実行を通す
tagsプロパティは配列という参照型なので、スプレッドでコピーしても同じ配列を共有したままです。コピー先へのpushが元のstateにも反映されてしまいます。
次の問題