개발자 Saaad

[JavaScript] Closure 본문

학습/kakao X goorm 풀스택12회차

[JavaScript] Closure

Saaad 2024. 11. 28. 08:59

Closure 란?

다른 함수 내부에 정의된 함수(InnerFunction)가 있는 경우 외부 함수(OuterFunction)가 실행을 완료하고

해당 변수가 해당 함수 외부에서 더 이상 액세스 할수 없는경우에도 해당 내부 함수는 외부 함수의 변수 및 범위에

액세스 할 수 있습니다.

설명

1. newFunction을 선언하고 outerFunction('outside'); 를 할당합니다

  이 과정에서 newFunction 은 innerFunction()을 리턴 받았습니다.

2. newFunction('insdie'); 를 통해 innerFunction('inside); 를 호출한 것이나 마찬가지입니다.

출력 결과

 

그런데 외부 함수에 매개변수로 받은 'outside' 를 내부함수에서 여전히 기억하고 있다가 

console.log()를 통해 둘 다 출력하는 모습입니다.

 

outerFunction()은 1번 과정에서 종료되었지만, 여전히  내부함수 innerFunction은 외부 매개변수 'outside'를 기억하고 있습니다.


예제

 

1. 

 

 

2.

 

 

2. 를 Closure를 이용해 해결