Middle
Mi a call, apply és bind módszerek JavaScript-ben?
sobes.tech MI
Válasz az MI-től
call, apply és bind olyan módszerek, amelyek minden JavaScript függvényhez elérhetők. Ezeket a függvény végrehajtási kontextusának (a this értékének) kezelésére használják.
- call: Egy függvényt meghív egy megadott
thisértékkel és külön argumentumokkal.// call használatának példája function greet() { return "Szia, " + this.name + "!"; } const person = { name: "Ivan" }; console.log(greet.call(person)); // Kimenet: Szia, Ivan! - apply: Egy függvényt meghív egy megadott
thisértékkel és argumentumokat tömb vagy pseudo-tömb formájában.// apply használatának példája function sum(a, b) { return this.base + a + b; } const context = { base: 10 }; const numbers = [5, 3]; console.log(sum.apply(context, numbers)); // Kimenet: 18 - bind: Létrehoz egy új függvényt, amelyet meghíváskor egy rögzített
thisértékkel rendelkező függvényként hívnak meg. Az eredeti függvény nem hívódik meg azonnal.// bind használatának példája const module = { x: 42, getX: function() { return this.x; } }; const unboundGetX = module.getX; console.log(unboundGetX()); // Kimenet: undefined (a `this` a globális objektumra mutat) const boundGetX = unboundGetX.bind(module); console.log(boundGetX()); // Kimenet: 42 (a `this` a module-hoz kötött)
Fő különbségek:
| Módszer | Argumentumok átadása | Függvényhívás | Visszatérési érték |
|---|---|---|---|
| call | Külön (vesszővel elválasztva) | Azonnali | A függvény eredménye |
| apply | Tömb vagy pseudo-tömb formájában | Azonnali | A függvény eredménye |
| bind | Külön (vesszővel elválasztva) | Nem azonnali | Új függvény a this kötésével |