Skip to content

Cercle Blog

We've got something interesting

자바스크립트에서의 메모화 이해

Posted on 9월 26, 2021 By admin 자바스크립트에서의 메모화 이해에 댓글 없음

메모화란 무엇인가

메모화는 값비싼 함수 호출의 결과를 저장하고 동일한 입력이 다시 공급될 때 캐시된 결과를 반환하여 응용 프로그램의 속도를 높이는 최적화 기법이다.

예를 들어 재귀를 사용하여 숫자의 계승을 계산하는 방법이 있습니다.

function recursiveFac(n) { if (n === 0) { return 1 } else { return n * recursiveFac(n - 1) }}

이 기능은 잘 작동하지만 장기적으로,그것은 비싼 것입니다. 먼저 메모 팩(7)을 호출 한 다음 메모 팩(8)을 호출하면 이전에 계산 된 값을 저장할 캐시없이 전체 프로세스를 반복하여 함수를 7 번 더 반환해야한다고 가정 해 봅시다.

const cache = {}function memoFac(n) { if (cache) { return cache } else { if (n === 0) { cache = 1 } else { cache = n * memoFac(n - 1) } return cache}

그래서 우리는 그 키에 대한 결과를 저장할 다른 함수 메모 팩()과 글로벌 캐시 객체를 가지고 있습니다.
이제 메모 팩(7)을 호출 한 후 메모 팩(8)을 호출하면 캐싱 계산을 유지하기 위해 함수 외부로 이동 한”캐시”객체에 팩토리얼(7)에 대한 계산 된 값을 이미 저장했습니다. 따라서 우리는 함수를 한 번만 호출하고 8*메모 팩(7)을 계산해야합니다.이 메모 팩(7)은 캐시 된 값을 검색하기 위해”캐시”로 바로 보냅니다. 최고!

그러나 잠깐-메모가 동일한 일반 형식(함수의 외부 범위의 캐시에서 값을 검색하거나 익명 클로저 함수를 사용하여 값을 계산)을 따르는 경우 일반적인 메모 함수를 작성할 수 없습니까? 예,우리는 할 수 있습니다!

자바스크립트에서의 메모의 개념은 주로 두 가지 개념에 기초한다.

  1. 클로저
  2. 고차 함수
function memoizerHoc(fun){ let cache = {} return function (n){ if (cache != undefined ) { return cache } else { let result = fun(n) cache = result return result } }}

여기서 우리는 임시 함수 메모 작성기()와 반환 된 함수(클로저)내에서 액세스 할 수있는 로컬 변수 캐시를 가지고 있습니다.

Articles

글 내비게이션

Previous Post: 네안데르탈 인 다이어트–치아에서 내장에 이르기까지-사피엔스
Next Post: 최고의 해변을 가진 국가

More Related Articles

10 남자는 자신의 여자 친구의 가장 예기치 않게 뜨거운 신체 부위를 설명 Articles
당신이 알고있는 모든 여자 아기는”전자”로 시작하는 이름을 가지고 이유는 다음과 같습니다” Articles
신경화증 치료 및 관리 Articles
예기치 않은 상처와 긁힌 자국에 대비 Articles
뉴 새벽 주거 치료 센터 Articles
첫날:다이빙 스쿨은 질식 훈련으로 시작 Articles

답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

보관함

  • 2022년 2월
  • 2022년 1월
  • 2021년 12월
  • 2021년 11월
  • 2021년 10월
  • 2021년 9월
  • 2021년 8월
  • 2021년 7월
  • 2021년 6월
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어

메타

  • 로그인
  • 엔트리 피드
  • 댓글 피드
  • WordPress.org

Copyright © 2022 Cercle Blog.

Powered by PressBook Blog WordPress theme