Skip to content

Cercle Blog

We've got something interesting

Forståelse Memoisering i JavaScript

Posted on september 26, 2021 By admin Ingen kommentarer til Forståelse Memoisering i JavaScript

Hvad er Memoisering

Memoisering er en optimeringsteknik, der fremskynder applikationer ved at gemme resultaterne af dyre funktionsopkald og returnere det cachelagrede resultat, når de samme indgange leveres igen.

lad os tage et eksempel, Vi har denne metode til at beregne factorial af et tal ved hjælp af rekursion.

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

denne funktion fungerer fint, men i det lange løb vil det være dyrt. lad os sige, at hvis det først kalder memoFac(7) og derefter memoFac(8), uden en cache til at gemme vores tidligere beregnede værdier, er vi nødt til at gentage hele processen og returnere funktionen yderligere 7 gange.

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

så vi har en anden funktion memoFac () og global cache objekt, som vil gemme resultatet for denne nøgle.
nu, hvis vi kalder memoFac (8), efter at vi har kaldt memoFac(7), har vi allerede gemt vores beregnede værdi for factorial(7) i Vores “cache” objekt, som er blevet flyttet uden for funktionen for at bevare sine caching beregninger. Således behøver vi kun at kalde funktionen en gang, beregne 8 * memoFac(7), som sender os direkte til vores “cache” for at hente den cachelagrede værdi. Fedt!

men vent – hvis memoisering følger det samme generelle format (henter værdier fra en cache i funktionens ydre omfang eller beregner værdien ved hjælp af den anonyme lukningsfunktion), kunne vi ikke skrive en generel memoeringsfunktion? Ja Vi kan!

begrebet memoisering i JavaScript er bygget majorly på to begreber.

  1. lukninger
  2. højere ordens funktioner
function memoizerHoc(fun){ let cache = {} return function (n){ if (cache != undefined ) { return cache } else { let result = fun(n) cache = result return result } }}

her har vi HOC-funktion memoiserhoc () og en lokal variabel cache, der kan være tilgængelig inde i den returnerede funktion (lukning).

Articles

Indlægsnavigation

Previous Post: Neanderthal diæt–fra tænder til tarm – SAPIENS
Next Post: DIY Spinning Nerf Target

More Related Articles

Aldrig vinteraftener: forbedret udgave PS4 anmeldelse Articles
Jackie Aina ved, at vi alle er besat af stearinlys Articles
Sådan starter du et mentorprogram-8 tip til succes Articles
Diagnostisering af cervikal slidgigt Articles
ny Albany DPS kørekort Kontor Articles
De bedste kvarterer i Elisabeth, NJ by Home Value Articles

Skriv et svar Annuller svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

Arkiver

  • februar 2022
  • januar 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021
  • august 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

  • Log ind
  • Indlægsfeed
  • Kommentarfeed
  • WordPress.org

Copyright © 2022 Cercle Blog.

Powered by PressBook Blog WordPress theme