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
   21   22   23   24   25   26   27   28   29   30   31