Método bind
O método bind permite vincular um contexto a uma função.
Como primeiro parâmetro, deve-se passar o
contexto, e nos parâmetros subsequentes - os parâmetros
da função. O método retorna uma nova função,
dentro da qual this será igual ao contexto
passado.
Sintaxe
função.bind(contexto, parâmetro1, parâmetro2...);
Exemplo
Suponha que temos um input:
<input id="elem" value="text">
Suponha que a referência a este input esteja armazenada na variável
elem:
let elem = document.querySelector('#elem');
Suponha que também temos a seguinte função
func:
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
Vamos usar bind para criar uma nova
função, que será uma cópia da função func,
mas this nela sempre será igual a elem:
let newFunc = func.bind(elem);
Agora na variável newFunc há uma
função. Vamos chamá-la, passando no primeiro
parâmetro '1', e no segundo '2':
newFunc('1', '2');
Vamos juntar tudo:
let elem = document.getElementById('elem');
function func(param1, param2) {
console.log(this.value + param1 + param2);
}
let newFunc = func.bind(elem);
newFunc('1', '2'); // exibirá 'text12'
Exemplo
Não é necessário armazenar o resultado do
bind em uma nova função newFunc,
pode-se simplesmente sobrescrever func:
func = func.bind(elem);