더북(TheBook)

당황스럽겠지만, 위 문법은 유효한 문법입니다. candyMachine 객체 안의 속성을 찾아서 변수와 매칭합니다. count처럼 여러 단계 안의 속성도 찾을 수 있습니다. getCandycount 변수가 초기화된 것입니다. 다만, 구조 분해 할당을 사용하면 함수의 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, objbool의 위치를 보면 node는 배열의 첫 번째 요소, obj는 두 번째 요소, bool은 네 번째 요소라는 것을 알 수 있습니다. objbool 사이의 요소인 10에는 변수명을 지어주지 않았으므로 10은 무시합니다.

구조 분해 할당 문법도 코드 줄 수를 상당히 줄여주므로 유용합니다. 특히 노드는 모듈 시스템을 사용하므로 이러한 방식을 자주 씁니다. 모듈 시스템은 3.3절에서 자세히 알아보겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.