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.