Page 26 -
P. 26
다음은 객체의 속성을 같은 이름의 변수에 대입하는 코드입니다.
var candyMachine = {
status: {
name: 'node',
count: 5,
},
getCandy: function () {
this.status.count--;
return this.status.count;
},
};
var getCandy = candyMachine.getCandy;
var count = candyMachine.status.count;
이 코드를 다음과 같이 바꿀 수 있습니다.
const candyMachine = {
status: {
name: 'node',
count: 5,
},
getCandy() {
this.status.count--;
return this.status.count;
},
};
const { getCandy, status: { count } } = candyMachine;
당황스럽겠지만, 위 코드의 문법은 유효한 문법입니다. candyMachine 객체 안의 속성을 찾아서
변수와 매칭합니다. count처럼 여러 단계 안의 속성도 찾을 수 있습니다. getCandy와 count 변
수가 초기화된 것입니다. 다만, 구조분해 할당을 사용하면 함수의 this가 달라질 수 있습니다.
getCandy 함수를 사용해보세요. 달라진 this를 원래대로 바꿔주려면 bind 함수를 따로 사용해야
합니다.
배열에 대한 구조분해 할당 문법도 존재합니다.
var array = ['nodejs', {}, 10, true];
var node = array[0];
var obj = array[1];
var bool = array[3];
72
node_06.indd 72 2020-07-14 오전 11:02:01