IT 소식

프로그래밍/JavaScript +1
내부함수 

 자바스크립트는 함수 안에서 또 다른 함수를 선언할 수 있다.
function outter(){

    function inner(){

        var name= 'closerTest'; 
        console.log(name); 

    }
    inner();

}
outter();  // closerTest가 출력된다. 



함수 outter의 내부에는 함수 inner가 정의 되어 있다
function outter(){
    var name= 'closerTest'; 

    function inner(){

        console.log(name);

    }
    inner();

}
outter(); // closerTest 가 출력된다. 



클로저(closure)는 내부함수와 밀접한 관계를 가지고 있는 주제다. 
내부함수는 외부함수의 지역변수에 접근 할 수 있는데 외부함수의 실행이 끝나서 외부함수가 
소멸된 이후에도 내부함수가 외부함수의 변수에 접근 할 수 있다. 이러한 메커니즘을 클로저라고 한다.

클로저란 내부함수가 외부함수의 지역변수에 접근 할 수 있고, 

외부함수는 외부함수의 지역변수를 사용하는 내부함수가 소멸될 때까지 소멸되지 않는 특성을 의미한다.

function outter(){
    var name = 'closerTest';  

    return function(){        

        alert(name);

    }
}
inner = outter();
inner();   // closerTest 가 출력된다. 



참고 URL : https://opentutorials.org/course/743/6544