Javascript
Javascript - spread
Starters
2020. 9. 5. 22:12
... 사용
객체 혹은 배열을 펼칠 수 있다.
const slime = {
name: '슬라임'
};
const cuteSlime = {
name: '슬라임'
attribute: 'cute'
};
const purpleCuteSlime = {
name: '슬라임'
attribute: 'cute',
color: 'purple'
};
console.log(slime);
console.log(cuteSlime);
console.log(pupleCuteSlime);
위와 같은 상황에서 중복을 줄이기 위해서 spread 사용
const slime = {
name: '슬라임'
};
const cuteSlime = {
...slime,
attribute: 'cute'
};
const purpleCuteSlime = {
...cuteSlime,
color: 'purple'
};
console.log(slime);
console.log(cuteSlime);
console.log(pupleCuteSlime);
만약 이렇게 쓴다면, 모든 객체가 같은 값을 갖게 된다.
하지만
const slime = {
name: '슬라임'
};
const cuteSlime = {
...slime,
attribute: 'cute'
};
const purpleCuteSlime = {
...cuteSlime,
color: 'purple'
};
const greenCuteSlime = {
...PurpleCuteSlime,
color: 'green'
};
console.log(slime);
console.log(cuteSlime);
console.log(pupleCuteSlime);
console.log(greenCuteSlime);
위와 같은 방식으로 쓴다면, 그 내부의 값을 덮어쓰게 된다.
하지만 덮어쓸 값을 spread연산자 아래에 써야한다.
배열에서도 spread 연산자 사용 가능
const animals = ['개', '고양이', '참새'];
const anotherAnimals = [...animals, '비둘기']; // animals.concat('비둘기'); 랑 같은 코드
console.log(animals);
console.log(anotherAnimals);
연속으로 spread연산자 사용
const num = [1, 2, 3, 4, 5];
const spreadNumbers = [...num, 1000, ...num]
console.log(spreadNumbers); => [1, 2, 3, 4, 5, 1000, 1, 2, 3, 4, 5]