Middle
Mis on call, apply ja bind meetodid JavaScriptis?
sobes.tech AI
Vastus AI-lt
call, apply ja bind — need on JavaScripti meetodid, mis võimaldavad hallata funktsiooni täitmise konteksti (väärtus this).
- call: Kutsub funktsiooni välja määratud
thisväärtuse ja eraldi edastatud argumentidega.// Näide call kasutamisest function greet() { return "Tere, " + this.name + "!"; } const person = { name: "Ivan" }; console.log(greet.call(person)); // Väljund: Tere, Ivan! - apply: Kutsub funktsiooni välja määratud
thisväärtuse ja argumentidega, mis edastatakse massiivi või pseudo-massiivina.// Näide apply kasutamisest function sum(a, b) { return this.base + a + b; } const context = { base: 10 }; const numbers = [5, 3]; console.log(sum.apply(context, numbers)); // Väljund: 18 - bind: Loob uue funktsiooni, millel on määratud
thisväärtus, ja mis ei kutsuta kohe välja.// Näide bind kasutamisest const module = { x: 42, getX: function() { return this.x; } }; const unboundGetX = module.getX; console.log(unboundGetX()); // Väljund: undefined (this osutab globaalsele objektile) const boundGetX = unboundGetX.bind(module); console.log(boundGetX()); // Väljund: 42 (this on seotud module'iga)
Peamised erinevused:
| Meetod | Argumentide edastamine | Funktsiooni väljakutse | Tagastatav väärtus |
|---|---|---|---|
| call | Eraldi (koma abil) | Kohe | Funktsiooni täitmise tulemus |
| apply | Massiivina või pseudo-massiivina | Kohe | Funktsiooni täitmise tulemus |
| bind | Eraldi (koma abil) | Mitte kohe, vaid hiljem | Uus funktsioon, millele on seotud this |