[클로저] 외부 상태 기억과 데이터 캡슐화 제공
·
언어/JAVASCRIPT
function createAdvancedFilter(minValue, maxValue) { return function(arr) { return arr.filter(function(num) { return num > minValue && num  클로저를 한마디로 정의하면  외부 함수 내에서 정의된 내부 함수가 외부 함수의 변수에 접근할수있다. 대표사진에서 보이는 선물 포장의사진은 일종의 감싸는 것을 표현하는거같습니다. (스코프를 감싼) 그렇다면 클로저를 이용하여 구현을하면 좋은 이유가 뭘까요? 클로저를 이용하여 구현하면 좋은 이유는 "상태를 감싸고 안전하게 보호하는" 기능을 제공하기 때문입니다.선물 포장의 이미지처럼, 클로저는 데이터를 감싸서 외부로부터 보호하고, 필요한 부분만 노출시..
24장 클로저
·
BOOK/모던 자바스크립트 Deep Dive
클로저는 함수와 그 함수가 선언된 렉시컬 환경과의 조합이다.const x = 1;function outerFunc() { const x = 10; function innerFunc() { console.log(x); // 10; } innerFunct();}outerFunc();이렇게 innerFunc가 x변수에 접근할수있는이유는 자바스크립트가 렉시컬 스코프를 따르는 프로그래밍 언어이기 때문이다. 24.1 렉시컬 스코프자바스크립트 엔진은 함수를 어디에 정의했는지에 따라 상위스코프를 결정한다.이를 렉시컬 스코프(정적 스코프)라 한다.const x = 1;function foo() { const x = 10; bar();}function bar() { console.log(x);}foo();bar();..