Middle
Cosa sono i metodi call, apply e bind in JavaScript?
sobes.tech AI
Risposta dell'AI
call, apply e bind sono metodi disponibili per tutte le funzioni in JavaScript. Sono usati per gestire il contesto di esecuzione della funzione (il valore di this).
- call: Chiama una funzione con un valore
thisspecificato e argomenti separati.// Esempio di utilizzo di call function greet() { return "Ciao, " + this.name + "!"; } const person = { name: "Ivan" }; console.log(greet.call(person)); // Risultato: Ciao, Ivan! - apply: Chiama una funzione con un valore
thisspecificato e argomenti passati sotto forma di array o pseudoarray.// Esempio di utilizzo di apply function sum(a, b) { return this.base + a + b; } const context = { base: 10 }; const numbers = [5, 3]; console.log(sum.apply(context, numbers)); // Risultato: 18 - bind: Crea una nuova funzione che, quando chiamata, ha un valore
thisfissato. La funzione originale non viene chiamata immediatamente.// Esempio di utilizzo di bind const module = { x: 42, getX: function() { return this.x; } }; const unboundGetX = module.getX; console.log(unboundGetX()); // Risultato: undefined (this punta all'oggetto globale) const boundGetX = unboundGetX.bind(module); console.log(boundGetX()); // Risultato: 42 (this è legato a module)
Principali differenze:
| Metodo | Passaggio di argomenti | Chiamata della funzione | Valore di ritorno |
|---|---|---|---|
| call | Separati (da virgola) | Immediatamente | Risultato della funzione |
| apply | In forma di array o pseudoarray | Immediatamente | Risultato della funzione |
| bind | Separati (da virgola) | Non immediatamente | Nuova funzione con this legato |