Skip to content

Cercle Blog

We've got something interesting

Memoization begrijpen in JavaScript

Posted on september 26, 2021 By admin Geen reacties op Memoization begrijpen in JavaScript

Wat is Memoization

Memoization is een optimalisatietechniek die toepassingen versnelt door de resultaten van dure functieaanroepen op te slaan en het resultaat in de cache terug te geven wanneer dezelfde ingangen opnieuw worden geleverd.

laten we een voorbeeld nemen, we hebben deze methode om faculteit van een getal te berekenen met behulp van recursie.

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

deze functie zal prima werken, maar op de lange termijn zal het duur zijn. laten we zeggen dat als het eerst memoFac(7) en dan memoFac(8) aanroept, zonder een cache om onze eerder berekende waarden op te slaan, we het hele proces moeten herhalen, waarbij we de functie nog eens 7 keer moeten retourneren.

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

dus we hebben een andere functie memoFac () en global cache object die het resultaat voor die sleutel zal opslaan.
als we memoFac(8) aanroepen nadat we memoFac(7) hebben aangeroepen, hebben we onze berekende waarde voor factorial(7) al opgeslagen in ons “cache” – object, dat buiten de functie is verplaatst om zijn cachingberekeningen te behouden. We hoeven de functie dus maar één keer aan te roepen, bereken 8 * memoFac(7), die ons rechtstreeks naar onze “cache” stuurt om de waarde in de cache op te halen. Geweldig!

maar wacht-als memoization hetzelfde algemene formaat volgt (waarden ophalen uit een cache in de outer scope van de functie, of de waarde berekenen met behulp van de anonieme afsluitfunctie), kunnen we dan geen algemene memoize functie schrijven? Ja, dat kunnen we!

het concept van memoization in JavaScript is grotendeels gebaseerd op twee concepten.

  1. sluitingen
  2. hogere-orde functies
function memoizerHoc(fun){ let cache = {} return function (n){ if (cache != undefined ) { return cache } else { let result = fun(n) cache = result return result } }}

hier hebben we HOC functie memoizerHoc () en een lokale variabele cache die toegankelijk kan zijn binnen de geretourneerde functie (sluiting).

Articles

Berichtnavigatie

Previous Post: Het Neanderthaler dieet – van tanden tot darmen-SAPIENS
Next Post: DIY Spinning Nerf Target

More Related Articles

privacy notice Articles
11 gewoontes van mensen die nooit moe zijn Articles
Ik heb veel geleerd in de 10 jaar sinds mijn vrouw stierf Articles
A Guide to Injuries and Damages in Virginia Medical Malpractice Cases Articles
kin-Up (negatieven) Articles
Welkom bij het Affiliate programma Articles

Geef een antwoord Antwoord annuleren

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Archieven

  • februari 2022
  • januari 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021
  • augustus 2021
  • juli 2021
  • juni 2021
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어

Meta

  • Inloggen
  • Berichten feed
  • Reacties feed
  • WordPress.org

Copyright © 2022 Cercle Blog.

Powered by PressBook Blog WordPress theme