Junior — Middle
El tudná magyarázni, hogy mik a különbségek a call, apply és bind módszerek között JavaScriptben, és hogyan használják őket a függvényhívás kontextusának kezelésére?
sobes.tech MI
Válasz az MI-től
A JavaScript-ben a call, apply és bind módszerek arra szolgálnak, hogy a függvényhívás során a kontextust (this) kezeljük:
-
call(thisArg, arg1, arg2, ...) — azonnal meghívja a függvényt, beállítva a
thisértékétthisArg-ra, és az argumentumokat külön-külön adja át. -
apply(thisArg, [argsArray]) — hasonló a
call-hoz, de az argumentumokat tömbként adja át. -
bind(thisArg, arg1, arg2, ...) — nem hívja meg azonnal a függvényt, hanem egy új függvényt ad vissza, amelyhez a
thiskötve van, és opcionálisan előre beállított argumentumokat tartalmaz.
Példa:
function greet(greeting, punctuation) {
console.log(greeting + ', ' + this.name + punctuation);
}
const person = { name: 'Иван' };
greet.call(person, 'Привет', '!'); // Привет, Иван!
greet.apply(person, ['Здравствуйте', '...']); // Здравствуйте, Иван...
const greetIvan = greet.bind(person, 'Привет');
greetIvan('!!!'); // Привет, Иван!!!
Ezek a módszerek lehetővé teszik, hogy explicit módon meghatározzuk, hogy a this melyik objektumra mutat a függvényen belül.