JS에서, 폐쇄는 무엇인가? 이점은 무엇입니까 폐쇄?

나는 인터넷이 모든 후, 보는 사람의이 일 눈이 현명한 두 가지 특성을 요약, 나를 위해, 지혜를 참조 설명 폐쇄를 많이 가지고 있다고 생각합니다 :

1. 기능 중첩 함수 내부 함수와 변수는 외부 함수 파라미터를 참조 할

AAA 함수 () {
     var에 A = 5 ; 
    BBB 함수 () { 
        경고 (a) 
    } 

    리턴 BBB 
} 
VAR C = AAA (); 
씨();

 

2. 매개 변수는 가비지 콜렉션을 회수되지

JS에서의 가비지 컬렉션기구 

  기능 검사 () { 
        VAR A = 1. , 
        경고 (a) 
  } 
  시험 (); // 이 기능을 수행하는 기능은 존재하지 않는 내부

 

풀 폐쇄의 혜택에서 살펴 보자 :

1. 그 메모리에 변수 장기간 존재를 원하는 (일반적 기능 완료 변수와 파라미터가 파괴된다)

글로벌 변수의 2. 피 오염

AAA 함수 () {
        var에 A = 1이다. ] ++ ; 
       경보 (A) 
 } 

AAA (); // 2 
AAA (); // 2 
AAA (); // 2 
함수에 관계없이 여러 번 수행 위에 팝업 우리는 2 / 꺼낼 것인지 2 인 3 / 4 와 같은 결과를? 우리는 클로저를 사용할 필요가

 

  AAA 함수 () {
         var에 A = 1이다. ]
         복귀 함수 () { ++ ; 
            경보 (A) 
        } 
    } 

    VAR BBB = AAA (); 
    BBB (); // 2 
    BBB (); // . 3 
    BBB (); // 4 

    // 함수 식 작성 
    VAR의 AAA를 = (함수 () {
         VAR A = 1이다. ]
         복귀 함수 () { ++ , 
            경고 (a) 
        }
    }) () 에 의해 

    AAA () // 2 하여 
    AAA () // 3 하여 
    AAA () // 4

 

추천

출처www.cnblogs.com/0955xf/p/12634418.html