Middle
Čo sú metódy call, apply a bind v JavaScripte?
sobes.tech AI
Odpoveď od AI
call, apply a bind sú metódy dostupné pre všetky funkcie v JavaScripte. Používajú sa na správu kontextu vykonávania funkcie (this).
- call: Zavolá funkciu s danou hodnotou
thisa samostatnými argumentmi.// Príklad použitia call function greet() { return "Ahoj, " + this.name + "!"; } const person = { name: "Ivan" }; console.log(greet.call(person)); // Výstup: Ahoj, Ivan! - apply: Zavolá funkciu s danou hodnotou
thisa argumentmi odovzdanými vo forme poľa alebo pseudo-poľa.// Príklad použitia apply function sum(a, b) { return this.base + a + b; } const context = { base: 10 }; const numbers = [5, 3]; console.log(sum.apply(context, numbers)); // Výstup: 18 - bind: Vytvorí novú funkciu, ktorá pri volaní má pevne stanovenú hodnotu
this. Pôvodná funkcia sa nevolá okamžite.// Príklad použitia bind const module = { x: 42, getX: function() { return this.x; } }; const unboundGetX = module.getX; console.log(unboundGetX()); // Výstup: undefined (this ukazuje na globálny objekt) const boundGetX = unboundGetX.bind(module); console.log(boundGetX()); // Výstup: 42 (this je viazané na module)
Hlavné rozdiely:
| Metóda | Odovzdávanie argumentov | Volanie funkcie | Návratová hodnota |
|---|---|---|---|
| call | Oddelene (čiarkou) | Ihneď | Výsledok funkcie |
| apply | Vo forme poľa alebo pseudo-poľa | Ihneď | Výsledok funkcie |
| bind | Oddelene (čiarkou) | Nie ihneď | Nová funkcia s viazaným this |