본문 바로가기
Javascript

javascript 클로저

by reo.l 2020. 12. 27.

클로저(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

댓글