유튜브 강의

코딩앙마 자바스크립트 중급 강의 9.클로저

2021bong 2022. 2. 3. 22:11

Lexical 환경에서 one도 할당되고 addOne은 초기에 이미 선언 완료됨

 

 

addOne(5)이라는 함수가 실행되어 새로운 Lexical 환경이 생김

이 Lexical환경에는 함수가 넘겨받은 매개변수와 지역변수들이 저장됨

 

 

함수가 호출되는 동안 전역, 내부 Lexical 환경 두개를 가짐

내부 Lexical 환경은 전역 Lexical 환경을 참조할 수 있음

 

 

내부 Lexical 환경에 one이 없어서 전역 Lexical 환경을 참조해 one을 찾아 계산을 함


makeAdder와 add3을 선언해 전역 Lexical 환경이 생성됨

 

 

add3 위치의 코드가 실행되면서 새로운 Lexical 환경이 생성됨

 

 

makeAdder 함수가 실행되어 add3은 return하는 함수가 됨

 

 

마지막 줄의 코드가 실행되면서 add3의 값인 익명함수의 Lexical 환경이 또 생성됨

 

 

그리고 참조해가며 계산을 함


add3 함수가 생성된 이후에도 상위함수인 makeAdder의 x에 접근 가능

 

 

add10과 add3은 서로 다른 Lexical 환경을 가진다

그래서 add3의 값은 변화가 없음


이렇게 클로저를 이용해 은닉화도 가능

728x90