posts
FE
02-javascript
Closure

Closure

함수와 그 함수가 선언 되었을 때의 렉시컬 환경(lexical environment)의 조합

반환된 내부함수가 자신이 선언되었을 때의 렉시컬 환경(lexical environment)을 기억하여, 외부 함수의 범위에 대한 접근을 제공함.


코드 예시

const ClosureExample = () => {
    // 외부 함수
    const outerFunc = () => {
        let name = 'dongwook';
        // 내부 함수
        const innerFunc = () => {
            console.log(name);
        }
        // 내부 함수를 리턴
        return innerFunc;
    }
 
    // 외부 함수를 실행
    const callFunc = outerFunc();
    
    // 외부 함수 실행 종료 후에도 변수에 접근이 가능
    callFunc();
}