Sobes.tech
Middle

Kas yra call, apply ir bind metodai JavaScript?

sobes.tech AI

Atsakymas iš AI

call, apply ir bind — tai JavaScript prieinami metodai, skirti valdyti funkcijos vykdymo kontekstą (reikšmę this).

  • call: Iškviečia funkciją su nurodyta this reikšme ir atskirais perduodamais argumentais.
    // Naudojimo pavyzdys su call
    function greet() {
      return "Sveiki, " + this.name + "!";
    }
    
    const person = { name: "Ivan" };
    
    console.log(greet.call(person)); // Išvestis: Sveiki, Ivan!
    
  • apply: Iškviečia funkciją su nurodyta this reikšme ir argumentais, perduodamais kaip masyvas arba pseudo-masyvas.
    // Naudojimo pavyzdys su apply
    function sum(a, b) {
      return this.base + a + b;
    }
    
    const context = { base: 10 };
    const numbers = [5, 3];
    
    console.log(sum.apply(context, numbers)); // Išvestis: 18
    
  • bind: Sukuria naują funkciją, kuri, iškvietus, turi nustatytą this reikšmę. Originali funkcija iš karto nekviečiama.
    // Naudojimo pavyzdys su bind
    const module = {
      x: 42,
      getX: function() {
        return this.x;
      }
    };
    
    const unboundGetX = module.getX;
    console.log(unboundGetX()); // Išvestis: undefined (this nurodo į globalų objektą)
    
    const boundGetX = unboundGetX.bind(module);
    console.log(boundGetX()); // Išvestis: 42 (this pririštas prie module)
    

Pagrindiniai skirtumai:

Metodas Argumentų perdavimas Funkcijos iškvietimas Grąžinamas rezultatas
call Atskirai (per kablelį) Iš karto Funkcijos vykdymo rezultatas
apply Masyvu arba pseudo-masyvu Iš karto Funkcijos vykdymo rezultatas
bind Atskirai (per kablelį) Ne iš karto, o vėliau Nauja funkcija su pririštu this