Middle+
Zašto može biti potrebna metoda apply u rešenju runOnce?
sobes.tech АИ
Одговор од АИ
Metoda apply u JavaScript-u omogućava pozivanje funkcije sa zadatim kontekstom (this) i argumentima u obliku niza. U implementaciji runOnce, koja treba da se izvrši samo jednom, apply je koristan za prenos originalnih argumenata i konteksta poziva na obuhvatnu funkciju.
Na primer, ako želimo da runOnce vrati funkciju koja pri prvom pozivu poziva originalnu funkciju sa istim argumentima i kontekstom, a pri sledećim ne, onda apply omogućava da to uradimo univerzalno:
function runOnce(fn) {
let called = false;
let result;
return function(...args) {
if (!called) {
called = true;
result = fn.apply(this, args); // prenos konteksta i argumenata
}
return result;
};
}
Na ovaj način, apply obezbeđuje ispravno funkcionisanje funkcije sa bilo kojim brojem argumenata i ispravnim kontekstom poziva.