El método bind () de la función JavaScript permite que un objeto tome prestado el método de otro objeto sin copiarlo.
La sintaxis del bind()
método es:
func.bind(thisArg, arg1,… argN)
Aquí func
hay una función.
Parámetros bind ()
El bind()
método incluye:
thisArg
- El valor proporcionado comothis
parámetro parafunc
. Se ignora si la función vinculada se crea utilizando un operador nuevo .arg1,… argN
(opcional): argumentos para anteponer a los argumentos proporcionados a la función enlazada al invocarfunc
.
Notas:
- Cuando se usa thisArg dentro de setTimeout, los valores primitivos se convierten en objetos.
- Si
thisArg
no se especifica, el this del ámbito de ejecución se trata comothisArg
.
Valor de retorno de bind ()
- Devuelve una copia de la función dada con el valor especificado y los argumentos iniciales (si se proporcionan).
Ejemplo: usar 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
Salida
100 1100
Una vez que un método se pasa a algún lugar separado del objeto, this
se pierde. La creación de una función vinculada a partir de la función, utilizando el objeto original, resuelve perfectamente este problema
Lectura recomendada: llamada a la función JavaScript ()