233 of 264 menu

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);

Véase también

  • método call,
    que llama a una función con contexto
  • método apply,
    que llama a una función con contexto
kakkuzlsvpt