• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

return으로 인한 할당에 관련하여 질문드립니다.

20.06.12 03:14 작성 조회수 128

0

6:36

익명 함수를 정의 하고 반환한다는 것 까지는 이해가 가는데

반환된 익명함수가 변수 count에 할당된 다는 것이 이해가 잘 가지 않습니다. 

return function 이라는 것을 setCounter 함수로 받아들여야 하나요??  return이  나오니 갑자기 헷갈리는 것 같습니다 ㅠ

답변 1

답변을 작성해보세요.

2

함수란 무언가를 실행하고, 어떤 결과를 '값으로써' 반환하는 것입니다. 예를 들어,

function sum (a, b) { return a + b }
var c = sum(1, 2);
console.log(c);     // 3

이 경우 c라는 변수에는 sum(1, 2)를 실행하고, sum에서 반환해준 결과값이 담기게 됩니다.
sum이라는 함수는 두 매개변수를 합한 값인 3을 반환하니까, c에 3이 담기게 되는 것이죠.

함수는 일급객체로, 그 자체가 하나의 값으로 취급될 수 있습니다.
따라서 다른 함수에 의해 '반환(return)'될 수도 있는 것이죠.

어떤 함수 a를 실행한 결과로 함수 b를 반환하면, 그 반환된 함수 b를 다른 변수 c에 담았을 때,
이제는 c를 실행할 수 있게 되는 것입니다.

var a = function () {
  var b = function () { return 1; }
  return b;
}
var c = a();  // a의 실행의 결과로 b 함수가 c에 담깁니다.
var d = c(); // c의 실행의 결과로 1이 d에 담깁니다.
console.log(d);  // 1

영상의 예제의 경우
setCounter 함수를 실행하고 반환된 값이

function() { return ++count; }

라는 익명함수 그 자체입니다.
이 익명함수 자체가 count라는 변수에 담기게 되는 것입니다.