유튜브 강의
코딩앙마 자바스크립트 중급 강의 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