당황스럽겠지만, 위 문법은 유효한 문법입니다. 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];
array란 배열의 첫 번째, 두 번째 요소와 네 번째 요소를 변수에 대입하는 코드입니다.
다음과 같이 바꿀 수 있습니다.
const array = [‘nodejs’, {}, 10, true]; const [node, obj, , bool] = array;
어색해 보이지만, 나름대로 규칙이 있습니다. node, obj와 bool의 위치를 보면 node는 배열의 첫 번째 요소, obj는 두 번째 요소, bool은 네 번째 요소라는 것을 알 수 있습니다. obj와 bool 사이의 요소인 10에는 변수명을 지어주지 않았으므로 10은 무시합니다.
구조 분해 할당 문법도 코드 줄 수를 상당히 줄여주므로 유용합니다. 특히 노드는 모듈 시스템을 사용하므로 이러한 방식을 자주 씁니다. 모듈 시스템은 3.3절에서 자세히 알아보겠습니다.