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