Sobes.tech
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 this a 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 this a 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