var createCounter = function(n) {
return function() {
return n++
};
};
JS의 클로저에 관한 문제이다.
그리고 전위 연산자와 후위 연산자의 차이에 대해 알 수 있었다.
++n
(전위연산자) : 증감연산을 수행한 후 다른 연산을 수행한다.n++
(후위연산자) : 다른 연산을 수행한 후 증감연산을 수행한다.즉, 증감연산자가 앞에 있으면 먼저 증감하고 뒤에 있으면 나중에 증감한다는 것이다.
이 원리를 문제에 적용해보면return ++n
이라고 작성할 경우
Counter
함수 첫 실행시n
이 리턴되는 것이 아니라n+1
이 리턴된다. 증감이 먼저되고 그 증감된 값이 리턴되기때문이다.
따라서 후위연산자를 사용해서 첫 실행시n
이 리턴되도록 해야한다.