클로저(closure)는 내부 함수가 외부 함수의 맥락(context)에 접근할 수 있는 것을 가리키는데
클로저의 정의는 함수와 함수가 선언된 어휘적 환경의 조합이다.
js에서는 함수를 함수안에 선언할 수 있기에 이러한 조합이 가능하다.
function outter(){
let alert = 'hello world';
function inner(){
console.log(alert)
}
inner();
}
outter();
//--> 'hello world'
위처럼 클로저에서는 내부함수가 외부 함수의 지역변수에 접근할 수 있다.
(내부 함수에서 지역변수, 외부 함수의 변수, 전역 변수의 접근이 가능하다.)
function adder(x){
return function(y){
return x + y;
}
}
adder(2)(3); // 5
let add100 = adder(100);
add100(2); // 102
add100(10); // 110
(유용한 클로저 예제)
'Javascript' 카테고리의 다른 글
javascript append , prepend (0) | 2020.12.28 |
---|---|
javascript 고차함수 (filter, map, reduce) (0) | 2020.12.27 |
javascript 원시, 참조 자료형 (0) | 2020.12.21 |
javascript 객체 (0) | 2020.12.14 |
javascript 배열 (0) | 2020.12.14 |
댓글