Sobes.tech
Middle+

Prečo môže byť metóda apply potrebná v riešení runOnce?

sobes.tech AI

Odpoveď od AI

Metóda apply v JavaScripte umožňuje zavolať funkciu s daným kontextom (this) a argumentmi vo forme poľa. Pri implementácii runOnce, ktorá má byť vykonaná iba raz, je apply užitočné na odovzdanie pôvodných argumentov a kontextu volania zabalené funkcii.

Napríklad, ak chceme, aby runOnce vrátila funkciu, ktorá pri prvom volaní zavolá pôvodnú funkciu s rovnakými argumentmi a kontextom, a pri ďalších nie, potom apply umožňuje to univerzálne:

function runOnce(fn) {
  let called = false;
  let result;
  return function(...args) {
    if (!called) {
      called = true;
      result = fn.apply(this, args); // odovzdanie kontextu a argumentov
    }
    return result;
  };
}

Týmto spôsobom apply zabezpečuje správnu funkčnosť funkcie s akýmkoľvek počtom argumentov a správnym kontextom volania.