Middle
Co jsou metody call, apply a bind v JavaScriptu?
sobes.tech AI
Odpověď od AI
call, apply a bind jsou metody dostupné pro všechny funkce v JavaScriptu. Používají se k řízení kontextu vykonávání funkce (hodnoty this).
- call: Zavolá funkci s danou hodnotou
thisa samostatnými argumenty.// Příklad použití call function greet() { return "Ahoj, " + this.name + "!"; } const person = { name: "Ivan" }; console.log(greet.call(person)); // Výstup: Ahoj, Ivan! - apply: Zavolá funkci s danou hodnotou
thisa argumenty předané ve formě pole nebo pseudo-pole.// Příklad použití 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: Vytvoří novou funkci, která při volání má pevně stanovenou hodnotu
this. Původní funkce se nevolá ihned.// Příklad použití bind const module = { x: 42, getX: function() { return this.x; } }; const unboundGetX = module.getX; console.log(unboundGetX()); // Výstup: undefined (this odkazuje na globální objekt) const boundGetX = unboundGetX.bind(module); console.log(boundGetX()); // Výstup: 42 (this je vázáno na module)
Hlavní rozdíly:
| Metoda | Předání argumentů | Volání funkce | Návratová hodnota |
|---|---|---|---|
| call | Odděleně (čárkou) | Ihned | Výsledek volání funkce |
| apply | Ve formě pole nebo pseudo-pole | Ihned | Výsledek volání funkce |
| bind | Odděleně (čárkou) | Ne ihned | Nová funkce s navázaným this |