JS는 그 폐쇄 이해

  개인 이해 폐쇄 : 함수 정의 된 변수를 액세스 할 수있는 내부 기능을 아웃소싱 함수 내에 정의 기능.

  폐쇄 특징 : 변수 상주 메모리

  데모 유사한 함수 호출 카운터를 구현 :

        함수 FN () {
             var에 C = 0 ,
             함수 내부 () { 
                C + = 1이다. ] 
                CONSOLE.LOG (C)가 
            } 
            리턴 인너; 
        } 
        var에 F1 = FN () 
        F1을 (); // . 1 
        F1 () / / 2 C는 메모리 상주 해제되지

 

       사용 시나리오 1의 setTimeout 기준 함수는 파라미터 (첫 번째 파라미터가 기준의 setTimeout 함수) 전달할

        함수 laterCall (a) {
             복귀  함수 () { 
                CONSOLE.LOG ( "A :" , a) 
            } 
        } 
        VAR Fn2를 laterCall = (123 ); 
        에서는 setTimeout (Fn2를, 1,000)

  사용 시나리오 2 : 아날로그 개인 회원

    VAR 모듈 1 = ( 함수 () {
         var에 A = 1 ,
         VAR의 addOne = 함수 () { + = 1 ;
             리턴 
        } VAR의 subOne = 함수 () { - = 1 ;
             리턴 
        } { 
            addOne : addOne , 
            subOne : subOne 
        } 
    }) (); 
    module1.addOne () 
    module1.subOne ()
        
        
    

사용 시나리오 3 : 객체 지향

    함수 사용 (명) {
          .say = 함수 () { 
            CONSOLE.LOG ( "안녕하세요"+ 이름); 
        } 
    } 
    var에 사용자 =  사용자 ( "솔직한" ); 
    () user.say;

 

 

 

 

추천

출처www.cnblogs.com/jlyuan/p/11932207.html