LoginSignup
1
0

More than 3 years have passed since last update.

スプレッド構文

Posted at

スプレッド構文

「...」の形で記述され、配列やオブジェクトの要素を展開する構文です。

const test1 = { a: 1 };
const test2 = { b: 2 };

// test1とtest2が平らな状態でオブジェクトに入れることができます!
const test3 = { ...test1, ...test2};

// スプレッド構文を使わない場合
const test4 = {test1, test2};

// ネストしてい場合
const test_Oj1 = {a: {test: 1}, b: {test: 2}};
const test_Oj2 = {c: {test: 3}, d: {test: 4}};
const test_Oj = {...test_Oj1, ...test_Oj2};

// スプレッド構文を使わない場合
const test_Oj3 = {test_Oj1, test_Oj2};

結果
スクリーンショット 2020-03-21 3.04.37.png

ネストしてい場合はこんな感じになります↓
スクリーンショット 2020-03-21 3.53.40.png

スプレッド構文は配列でも使えます!

const test1 = [1,2];
const test2 = [3,4];

// こちらもtest1とtest2が平らな状態で配列に入れることができます!
const test3 = [...test1, ...test2];

結果
スクリーンショット 2020-03-21 3.26.19.png

Object.assign

同じようにコピーすることができるObject.assignというメソットもあります.
コピー元オブジェクトから列挙可能enumerableかつ直接所有ownのプロパティだけをコピー先オブジェクトにコピーします。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

const test1 = { a: 1 };
const test2 = { b: 2 };

// { ...test1, ...test2} と同じ結果になります
const test3 = Object.assign({}, test1, test2);

結果
スクリーンショット 2020-03-21 3.13.44.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0