2011-09-11 3 views
1

가능한 중복 : 나는 어떻게 폐쇄 작업을 파악하기 위해 노력하고있어 때문에
How do JavaScript closures work?클로저는 어떻게 작동합니까?

function add(num){ 
    return function(num1){     
      return function(num2){      
       return num + num1 + num2; 
     }; 
    }; 
} 

var add5 = add(7)((7))((7)); 
console.log(add5); 

나는 자바 스크립트 꽤 실험을했습니다.

하지만 그때 나는 그것을 볼이

var add5 = add(7)((7))((7)); 
console.log(add5); //result is 21 

방법을 시도했습니다, 폐쇄는 외부 기능 또는 그 부모 함수에 대한 포인터의 일종?

+0

폐쇄를위한 환경은이 – galchen

+0

당신은 [태그 위키] 읽을 수 권취 환경의 확장이다 (http://stackoverflow.com/tags/closures/info) 유용한 정보를 얻으려면. –

답변

2

클로저는 외부 함수 실행이 끝난 경우에도 내부 함수가 액세스하는 외부 함수의 범위입니다. 이것이 정확히 구현되는 방법은 JS 인터프리터에게 달려 있습니다.

여기에서 MDN 문서이다 : https://developer.mozilla.org/en/JavaScript/Guide/Closures

관련 문제