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
thisreikš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
thisreikš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ą
thisreikš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 |