Front-end/JavaScript

[자바스크립트] 클로저 함수

파리외 개발자 2022. 5. 8. 18:40

클로저함수는 함수가 끝나도 지역변수가 사라지지않고 계속 존재하는 것을 말한다.

add함수의 cnt변수는 증가연산이 있지만 매번 호출때마다 0으로 초기화되기 때문에

계속해서 1값이 출력된다.

cnt변수 값의 증가를 저장해서 사용하기 위해서 클로저함수를 사용한다.

add함수를 createCounter함수로 감싸준다.

그리고 createCounter함수를 counter변수에 저장한다면

return값은 add()내부함수이기 때문에 

counter변수에는 add함수의 리턴값인 cnt가 리턴되게 된다.

여기서 cnt변수는 외부함수인 createCounter함수의 지역변수이기 때문에

cnt변수는 초기화되지 않는데 이걸 클로져 현상이라 한다.

함수의 지역변수를 계속해서 사용하기 위해서 클로져 현상을 이용했다.

함수를 외부함수로 감싸고 리터럴형태로 변수에 저장한다면 클로져 함수가 된다.