Sobes.tech
Middle

Kas ir call, apply un bind metodes JavaScript?

sobes.tech AI

Atbilde no AI

call, apply un bind — tie ir JavaScript pieejamie metodes, kas ļauj pārvaldīt funkcijas izpildes kontekstu (vērtību this).

  • call: Izsauc funkciju ar norādītu this vērtību un atsevišķiem nodotajiem argumentiem.
    // Piemērs ar call
    function greet() {
      return "Sveiki, " + this.name + "!";
    }
    
    const person = { name: "Ivan" };
    
    console.log(greet.call(person)); // Izvade: Sveiki, Ivan!
    
  • apply: Izsauc funkciju ar norādītu this vērtību un argumentiem, kas nodoti kā masīvs vai pseido-masīvs.
    // Piemērs ar apply
    function sum(a, b) {
      return this.base + a + b;
    }
    
    const context = { base: 10 };
    const numbers = [5, 3];
    
    console.log(sum.apply(context, numbers)); // Izvade: 18
    
  • bind: Izveido jaunu funkciju, kas, izsaucot, satur noteiktu this vērtību. Oriģinālā funkcija nekavējoties neizsaucas.
    // Piemērs ar bind
    const module = {
      x: 42,
      getX: function() {
        return this.x;
      }
    };
    
    const unboundGetX = module.getX;
    console.log(unboundGetX()); // Izvade: undefined (this norāda uz globālo objektu)
    
    const boundGetX = unboundGetX.bind(module);
    console.log(boundGetX()); // Izvade: 42 (this ir piesaistīts pie module)
    

Galvenās atšķirības:

Metode Argumentu nodošana Funkcijas izsaukums Atgriežamā vērtība
call Atsevišķi (ar komatu) Nekavējoties Funkcijas izpildes rezultāts
apply Masiivā vai pseido-masivā Nekavējoties Funkcijas izpildes rezultāts
bind Atsevišķi (ar komatu) Ne nekavējoties, bet vēlāk Jauna funkcija ar piesaistītu this