const foo = { a: 1, b: 2, c: 3 };
console.log(foo);  // { a: 1, b: 2, c: 3 }

// オブジェクトのクローン
const pl1 = { ...foo };
console.log(pl1);  // { a: 1, b: 2, c: 3 }

// プロパティを追加した新しいオブジェクトの生成
const pl2 = { ...foo, d:4 };
console.log(pl2);  // { a: 1, b: 2, c: 3, d: 4 }

// オブジェクトのマージ
const pl3 = { ...foo, ...{ d: 4, e: 5 } };
console.log(pl3);  // { a: 1, b: 2, c: 3, d: 4, e: 5 }

// 元のオブジェクトに同名プロパティがある場合は置き換わる
const pl4 = { ...foo, b: 3 };
console.log(pl4);   // { a: 1, b: 3, c: 3 }
const pl5 = { ...foo, ...{b: 3, c: 4 }};
console.log(pl5);   // { a: 1, b: 3, c: 4};

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.