Middle+
Proč může být metoda apply v řešení runOnce potřeba?
sobes.tech AI
Odpověď od AI
Metoda apply v JavaScriptu umožňuje zavolat funkci s daným kontextem (this) a argumenty ve formě pole. V implementaci runOnce, která má být provedena pouze jednou, je apply užitečné pro předání původních argumentů a kontextu volání zabalené funkci.
Například, pokud chceme, aby runOnce vracela funkci, která při prvním volání zavolá původní funkci se stejnými argumenty a kontextem, a při následných voláních ne, pak apply umožňuje to univerzálně:
function runOnce(fn) {
let called = false;
let result;
return function(...args) {
if (!called) {
called = true;
result = fn.apply(this, args); // předání kontextu a argumentů
}
return result;
};
}
Tímto způsobem apply zajišťuje správnou funkčnost funkce s libovolným počtem argumentů a správným kontextem volání.