Middle
Ce sunt metodele call, apply și bind în JavaScript?
sobes.tech AI
Răspuns de la AI
call, apply și bind sunt metode disponibile pentru toate funcțiile în JavaScript. Ele sunt utilizate pentru gestionarea contextului de execuție al funcției (valoarea this).
- call: Apelează o funcție cu o valoare
thisspecificată și argumente separate.// Exemplu de utilizare a call function greet() { return "Salut, " + this.name + "!"; } const person = { name: "Ivan" }; console.log(greet.call(person)); // Output: Salut, Ivan! - apply: Apelează o funcție cu o valoare
thisspecificată și argumente transmise sub formă de array sau pseudo-array.// Exemplu de utilizare a apply function sum(a, b) { return this.base + a + b; } const context = { base: 10 }; const numbers = [5, 3]; console.log(sum.apply(context, numbers)); // Output: 18 - bind: Creează o nouă funcție care, atunci când este apelată, are o valoare
thisfixată. Funcția originală nu este apelată imediat.// Exemplu de utilizare a bind const module = { x: 42, getX: function() { return this.x; } }; const unboundGetX = module.getX; console.log(unboundGetX()); // Output: undefined (this indică către obiectul global) const boundGetX = unboundGetX.bind(module); console.log(boundGetX()); // Output: 42 (this este legat de module)
Principalele diferențe:
| Metodă | Transmiterea argumentelor | Apelarea funcției | Valoarea de returnare |
|---|---|---|---|
| call | Separat (prin virgulă) | Imediat | Rezultatul funcției |
| apply | Sub formă de array sau pseudo-array | Imediat | Rezultatul funcției |
| bind | Separat (prin virgulă) | Nu imediat | O nouă funcție cu this legat |