spread는 묶여 있던것들을 'spread'한다고 생각하자.
e.g. let arr1 = [1, 2, 3, 4, 5];
let arr2 = [9, ...arr1, 10];
let arr3 = 9, arr1, 10];
을 하게 되면 arr2 = [9, 1, 2, 3, 4, 5, 10] , arr3 = [9, [1, 2, 3, 4, 5], 10]이 되게 된다.
간단해 보이지만, 주의해볼점은 객체에서의 사용에 있어서이다.
let obj1 = { foo: 'bar', x: 42 };
let obj2 = { foo: 'baz', y: 13 };
let clonedObj = { ...obj1 };
let mergedObj = { ...obj1, ...obj2 };
을 하게 된다면, mergedObj는 {foo: "baz", x: 42, y: 13} 가 된다.
즉, 원래 가지고 있던 key의 value를 무시하고, merge할때 obj2의 값으로 덮어 씌우게 된다는 점이다.
'FRONTEND > JavaScript' 카테고리의 다른 글
reduce함수의 활용 (0) | 2021.05.09 |
---|---|
고차함수(map, filter, reduce) (0) | 2021.05.07 |
클로저(Closure) (0) | 2021.04.25 |
원시자료형(primitive type) vs 참조 자료형(reference type) (0) | 2021.04.25 |
for...in 과 for...of (0) | 2021.04.19 |