Middle+
Miért lehet szükség az apply módszerre a runOnce megoldásban?
sobes.tech MI
Válasz az MI-től
A JavaScript apply módszere lehetővé teszi, hogy egy függvényt meghívjunk egy adott kontextussal (this) és argumentumokkal tömb formájában. A runOnce implementációjában, amely csak egyszer kell, hogy lefusson, az apply hasznos az eredeti argumentumok és a hívási kontextus átadására a becsomagolt függvénynek.
Például, ha azt szeretnénk, hogy a runOnce egy olyan függvényt adjon vissza, amely az első híváskor ugyanazzal az argumentumokkal és kontextussal hívja meg az eredeti függvényt, a későbbi hívásoknál pedig nem, akkor az apply ezt univerzálisan lehetővé teszi:
function runOnce(fn) {
let called = false;
let result;
return function(...args) {
if (!called) {
called = true;
result = fn.apply(this, args); // kontextus és argumentumok átadása
}
return result;
};
}
Így az apply biztosítja, hogy a függvény bármilyen argumentumszámmal és helyes hívási kontextussal működjön.