Il metodo bind () della funzione JavaScript consente a un oggetto di prendere in prestito il metodo da un altro oggetto senza copiarlo.
La sintassi del bind()
metodo è:
func.bind(thisArg, arg1,… argN)
Ecco func
una funzione.
Parametri bind ()
Il bind()
metodo comprende:
thisArg
- Il valore fornito comethis
parametro perfunc
. Viene ignorato se la funzione associata viene creata utilizzando l' operatore new .arg1,… argN
(opzionale) - Argomenti da anteporre agli argomenti forniti alla funzione associata durante la chiamatafunc
.
Appunti:
- Quando si utilizza thisArg all'interno di setTimeout, i valori primitivi vengono convertiti in oggetti.
- Se
thisArg
non è specificato, il this dell'ambito di esecuzione viene considerato comethisArg
.
Valore restituito da bind ()
- Restituisce una copia della funzione data con il valore specificato e gli argomenti iniziali (se forniti).
Esempio: utilizzo di bind ()
this.x = 1; // "this" here is the global window object in browser const obj = ( x: 100, getX: function () ( return this.x; ), ); console.log(obj.getX()); // 100 const retrieveX = obj.getX; // the function gets invoked at the global scope console.log(retrieveX()); // 1 // Create a new function with 'this' bound to obj // global variable 'x' with obj's property 'x' are two separate entities const boundGetX = retrieveX.bind(obj); console.log(boundGetX()); // 100
Produzione
100 1 100
Una volta che un metodo viene passato da qualche parte separatamente dall'oggetto, this
viene perso. La creazione di una funzione associata dalla funzione, utilizzando l'oggetto originale, risolve perfettamente questo problema
Letture consigliate: chiamata funzione JavaScript ()