메모리 기능은 기능의 성능을 최적화하기 ----

N의 계승 입증하는데 사용 //      계산하는 단계에 저장된 데이터를, 다음 단계 후, 다음의 계산 시간이 지난이 수행되었는지 여부를 결정하고, 존재하는 경우 상기 저장된 값에 직접 액세스 계산되고
// n은! N * (N-1) * ... * 2 * 1
// 0! = 1
// n은! = N * (N-1)!
// 제 1 메모리 달성 
      의 처형 = 0 // 번호 VAR 카운트 
      기능 계승 (N-) { 
        COUNT ++ 
        IF (N-N -. == == 0 || 1) { 
          . 창 1 
        } 
        복귀 * N 계승 (. N-- 1) 
      } 
      대 (VAR I = 1]. I <= 5]. I ++) { 
        CONSOLE.LOG (팩토리얼 (I)) 
      }

// 실현 메모리 
        VAR COUNT = 0  // 번호 처형 
        VAR 캐시 = []  // 저장할 --- 때만 수행 계승 6x5 후 5, 6 등의 계산을 수행하고 데이터! 그리고 계승 (5)는 저장된 데이터로부터 문의가
 
        작동 계승 (N-) { 
            COUNT ++ 
            IF (캐시 [N-]) { // 만약 캐시 (캐시의 값) 버퍼의 값에 직접 액세스 
                창 캐시 [N-] 
            }는 다른 {  // 어떤 계산이 수행되지 않는 
                (N-N. - == == 0 || 1) IF { 
                    . 캐시 [0] = 1 
                    [. 1]. 캐시 = 1 
                    . 창 1 
                }는 다른 { 
                    . 캐시 [N- * = N-계승 (N-- 1 ) 
                    캐시를 반환 [N-] 
                } 
            }
        } 

        console.time ( '3') 
        CONSOLE.LOG (팩토리얼 (3)) 
        console.timeEnd ( '3') 
        CONSOLE.LOG ( '=================') 
        console.time (4 '') 
        CONSOLE.LOG (팩토리얼 (4)) 
        console.timeEnd (4 '')

  

// 최적화 
        기능 계승 (N-) {
             IF (N-N -. == == 0 || 1 ) {
                  . 1 
            } 다른 {
                  N- * 계승 (N-- 1이다. ) 
            } 
        } 
        // 래퍼 기능 
        함수 암기 (FN) {
             VAR {} = 캐시 // 객체의 값을 저장하는 데 사용 
            복귀  함수 () {
                 VAR의 키 = +에서 arguments.length (인수) Array.prototype.join.call // 고유 식별 키를 달성 
                IF (캐시 [키]) {
                     캐시 [키] 
                } 다른 { // 사용 argumens 어레이 매개 변수의 종류 얻었다 
                    = fn.apply 캐시하는 열쇠를 ( 이 본 인수)
                     반환 캐시 [키] 
                } 
            } 
        } 
        VAR Newf = 암기 (팩토리얼)

 

추천

출처www.cnblogs.com/PasserByOne/p/12002004.html