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
thisvē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
thisvē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
thisvē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 |