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