클로저

 

  • 자바스크립트의 모든 함수는 자신의 상위 스코프를 [[environment]]환경에 저장
  • 외부 함수의 생명 주기가 끝나면 실행 컨텍스트에서 제거되지만 렉시컬 환경을 내부 함수에 저장
  • 외부 함수의 식별자를 참조 하지않으면 자동적으로 가비지컬랙터의 제거 대상이 되서 클로저는 아니다.
  • 중첩 함수가 외부 함수보다 더 오래 지속되어야 한다.

 

const x = 1

function outer(){
    const x = 10;
    const inner = function(){
        console.log(x);
    }
    return inner;
}
const innerFunc = outer();
innerFunc(); //10

'WEB > JS' 카테고리의 다른 글

[JS] Rest 파라미터  (0) 2023.12.24
[JS] 화살표 함수  (0) 2023.12.20
[JS]실행 컨텍스트  (0) 2023.12.13
[JS] 전역 객체  (0) 2023.12.11
[JS] instanceof  (0) 2023.12.11

+ Recent posts