15. closure

적자생존·2022년 7월 3일
0

javascript restart

목록 보기
16/31

1. closure

가. 어휘적 환경

// 1. Lexical 환경 
// one : 초기화X 사용불가
// addOne : function 사용가능 단 변수에 할당한 함수표현식은 안됨

let one
// 2. Lexical 환경
// one : undefined 사용 가능 할당은 되어있지 않음
// addOne : function

one = 1
// 3. Lexical 환경
// one : 1 할당이 되었음
// addOne : function

function addOne(num) {
  console.log(one + num)
}

addOne(5)
// 4. Lexical 환경
// one : 1
// addOne : function 
// 함수가 실행이 되면서 새로운 Lexical 환경이 새로 만들어지고 함수가 가진 매개변수와 지역변수가 저장이 됨
// num : 5
// 함수가 호출되는 동안
// 전역 Lexical 환경
// one : 1, addOne: function
// 내부 Lexical 환경
// num : 5
// 전역 Lexical환경과 내부 Lexical 환경을 가지며 내부 Lexical환경은 외부 Lexical환경에 대한 참조를 가짐

정리


이런것을 Closure이라고 함

1) 함수와 렉시컬 환경의 조합
2) 함수가 생성될 당시의 외부 변수를 기억
3) 생성 이후에도 계속 접근 가능

profile
적는 자만이 생존한다.

0개의 댓글