Método bind
El método bind permite vincular un contexto a una función.
Como primer parámetro se debe pasar
el contexto, y como parámetros siguientes - los parámetros
de la función. El método devuelve una nueva función,
dentro de la cual this será igual al contexto
pasado.
Sintaxis
función.bind(contexto, parámetro1, parámetro2...);
Ejemplo
Supongamos que tenemos un input:
<input id="elem" value="text">
Supongamos que la referencia a este input está guardada en la variable
elem:
let elem = document.querySelector('#elem');
Supongamos que también tenemos la siguiente función
func:
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
Vamos a usar bind para crear una nueva
función, que será una copia de la función func,
pero this en ella siempre será igual a elem:
let newFunc = func.bind(elem);
Ahora en la variable newFunc hay una
función. Vamos a llamarla, pasando en el primer
parámetro '1', y en el segundo '2':
newFunc('1', '2');
Vamos a juntar todo:
let elem = document.getElementById('elem');
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
let newFunc = func.bind(elem);
newFunc('1', '2'); // mostrará 'text12'
Ejemplo
No es necesario guardar el resultado del trabajo de
bind en una nueva función newFunc,
se puede simplemente sobrescribir func:
let func = func.bind(elem);