Middle
Parlami dei modi per mantenere il contesto in JavaScript: bind, call, apply. In cosa si differenziano?
sobes.tech AI
Risposta dell'AI
In JavaScript, le funzioni sono oggetti di prima classe e hanno un contesto di chiamata dinamico (this). I metodi bind, call e apply consentono di gestire questo contesto:
-
call — chiama la funzione immediatamente, passando il contesto e gli argomenti separatamente.
func.call(context, arg1, arg2); -
apply — simile a call, ma gli argomenti vengono passati come array.
func.apply(context, [arg1, arg2]); -
bind — non chiama immediatamente la funzione, ma restituisce una nuova funzione con il contesto legato e, opzionalmente, argomenti parzialmente applicati.
const boundFunc = func.bind(context, arg1); boundFunc(arg2);
Differenze:
- call e apply chiamano la funzione immediatamente;
- bind restituisce una nuova funzione da chiamare più tardi;
- apply è utile quando gli argomenti sono già in un array;
- bind è utile per mantenere il contesto nei callback e negli handler di eventi.