Skip to content

Cercle Blog

We've got something interesting

Förstå Memoisering i JavaScript

Posted on september 26, 2021 By admin Inga kommentarer till Förstå Memoisering i JavaScript

Vad är Memoization

Memoization är en optimeringsteknik som påskyndar applikationer genom att lagra resultaten av dyra funktionssamtal och returnera det cachade resultatet när samma ingångar levereras igen.

låt oss ta ett exempel, Vi har den här metoden för att beräkna faktoriell av ett tal med hjälp av rekursion.

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

denna funktion fungerar bra men på lång sikt blir det dyrt. låt oss säga om det kallar första memoFac(7) och sedan memoFac(8), utan en cache för att lagra våra tidigare beräknade värden, måste vi upprepa hela processen och returnera funktionen ytterligare 7 gånger.

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 annan funktion memoFac() och global cache-objekt som lagrar resultatet för den nyckeln.
nu, om vi kallar memoFac (8) efter att vi har kallat memoFac(7), har vi redan sparat vårt beräknade värde för factorial(7) i vårt ”cache” – objekt, som har flyttats utanför funktionen för att behålla sina cachningsberäkningar. Således behöver vi bara ringa funktionen en gång, beräkna 8 * memoFac(7), som skickar oss direkt till vår ”cache” för att hämta det cachade värdet. Häftig!

men vänta — om memoisering följer samma allmänna format (hämtar värden från en cache i funktionens yttre omfattning eller beräknar värdet med funktionen anonym stängning), kunde vi inte skriva en allmän memoize-funktion? Ja det kan vi!

begreppet memoisering i JavaScript bygger huvudsakligen på två begrepp.

  1. stängningar
  2. funktioner med högre ordning
function memoizerHoc(fun){ let cache = {} return function (n){ if (cache != undefined ) { return cache } else { let result = fun(n) cache = result return result } }}

här har vi hoc-funktionen memoizerHoc () och en lokal variabel cache som kan vara tillgänglig inuti den returnerade funktionen (stängning).

Articles

Inläggsnavigering

Previous Post: Neanderthal Diet–från tänder till tarmar-SAPIENS
Next Post: DIY Spinning Nerf Target

More Related Articles

Hundratals översvämma Missouri River för världens längsta paddel race Articles
NASCAR: s olagliga Ursprung Articles
Hur neo-nationalism gick globalt Articles
varför du kan känna dig illamående efter Sex Articles
Monogeneans Articles
Neonatal omskärelse Articles

Lämna ett svar Avbryt svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Arkiv

  • februari 2022
  • januari 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021
  • augusti 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

  • Logga in
  • Flöde för inlägg
  • Flöde för kommentarer
  • WordPress.org

Copyright © 2022 Cercle Blog.

Powered by PressBook Blog WordPress theme