클로저
-
[Javascript] 모던자바스크립트 딥 다이브 3일차 (~416p)웹/JavaScript 2023. 1. 23. 19:03
24. 클로저 상위 스코프 함수 객체의 내부 슬롯 [[Environment]]에 저장된 현재 실행 중인 실행 컨텍스트의 렉시컬 환경의 참조를 말한다. 함수 객체는 내부슬롯 [[Environment]]에 저장한 렉시컬 환경의 참조 , 즉 상위 스코프를 자신이 존재한 한 기억한다. 자신이 호출되었을 때 생성될 함수 렉시컬 환경의 "외부 렉시컬 환경에 대한 참조"에 저장될 참조값이다. 클로저 클로저는 자바스크립트 고유의 개념이 아니므로 ECMAScript 명세에 클로저의 정의가 등장하지 않는다. 클로저에 대해 MDN은 아래와 같이 정의하고 있다. “A closure is the combination of a function and the lexical environment within which that fu..
-
[Javascript] 스코프와 바인딩, 렉시컬, 클로저웹/JavaScript 2023. 1. 14. 09:14
I. 렉시컬(정적) 스코프 lexical(static) scope 변수나 상수가 코드상 어디에서 지정되었는가에 따라 그 사용 범위를 결정 함수가 코드상 어디에서 정의되었는가에 따라 그 상위 스코프를 결정 호출한 곳을 기준으로 하는 동적 스포크 dynamic scope 와 상반되는 개념 👉 MDN 문서 보기 const x = 1; const y = 1; const z = 1; function func1 () { const y = 2; const z = 2; console.log('2', x, y, z); func2(); } function func2 () { const z = 3; console.log('3', x, y, z); } console.log('1', x, y, z) fun..