클로저는 자바스크립트의 고유 개념이 아니다. 함수를 일급 객체로 취급하는 함수형 프로그래밍언어에서 사용되는 중요한 특성이다. MDN에서는 "클러저는 함수와 그 함수가 선언된 렉시컬 환경과의 조합이다"라고 설명한다. 자바스크립트는 렉시컬 스코프를 따르는 프로그래밍 언어이다. const x =1; function outerFunction(){ const x =10; function innerFunction(){ console.log(x) //10 } } → innerFunction에서 outerFunction에 있는 x에 접근이 가능하다. 중첩함수 inner의 상위스코프는 외부함수 outerFunction이기 때문이다. 다음은 inner에서 outer 변수에 접근이 불가능하다. const x =1; func..
클로저는 자바스크립트의 고유 개념이 아니다. 함수를 일급 객체로 취급하는 함수형 프로그래밍언어에서 사용되는 중요한 특성이다. MDN에서는 "클러저는 함수와 그 함수가 선언된 렉시컬 환경과의 조합이다"라고 설명한다. 자바스크립트는 렉시컬 스코프를 따르는 프로그래밍 언어이다. const x =1; function outerFunction(){ const x =10; function innerFunction(){ console.log(x) //10 } }→ innerFunction에서 outerFunction에 있는 x에 접근이 가능하다. 중첩함수 inner의 상위스코프는 외부함수 outerFunction이기 때문이다. 다음은 inner에서 outer 변수에 접근이 불가능하다. const x =1; funct..