JavaScript Function bind()
- Página Anterior Aplicar JS Função
- Próxima Página Encerramento de JS
Emprestimo de Função (Function Borrowing)
Ao usar o método bind(), um objeto pode emprestar um método de outro objeto.
O exemplo a seguir cria 2 objetos (person e membro).
O objeto membro empréstimo o método fullname do objeto person:
instância
const person = { firstName: "Bill", lastName: "Gates", fullName: function () { return this.firstName + " " + this.lastName; } } const membro = { firstName: "Hege", lastName: "Nilsen", } let fullName = person.fullName.bind(membro);
manter this
às vezes é necessário usar o método bind() para evitar a perda este.
No exemplo a seguir, o objeto person possui um método display. No método display,este refere-se ao objeto person:
instância
const person = { firstName: "Bill", lastName: "Gates", display: function () { let x = document.getElementById("demo"); x.innerHTML = this.firstName + " " + this.lastName; } } person.display();
Quando a função é usada como callback,este perderá.
Este exemplo tentará exibir o nome da pessoa em 3 segundos, mas ele mostrará undefined:
instância
const person = { firstName: "Bill", lastName: "Gates", display: function () { let x = document.getElementById("demo"); x.innerHTML = this.firstName + " " + this.lastName; } } setTimeout(person.display, 3000);
O método bind() resolveu este problema.
No exemplo a seguir, o método bind() é usado para vincular person.display a person.
Este exemplo será exibido em 3 segundos o nome da pessoa:
instância
const person = { firstName: "Bill", lastName: "Gates", display: function () { let x = document.getElementById("demo"); x.innerHTML = this.firstName + " " + this.lastName; } } let display = person.display.bind(person); setTimeout(display, 3000);
o que é this?
no JavaScript,este
palavra-chave de referênciaobjeto.
referenciadoqualo objeto depende da forma como é chamado (usado ou chamado).
dependendo de como é usado, a palavra-chave este
referencia diferentes objetos:
- no método de um objeto,
este
referenciado peloobjeto. - usado sozinho,
este
referenciadoobjeto global. - no contexto de uma função,
este
referenciadoobjeto global. - no contexto de uma função, no modo estrito,
este
éundefined
. - no evento,
este
referenciado para receber eventoselemento. - métodos como call(), apply() e bind() podem
este
referenciadoqualquer objeto.
Atenção:este
não é uma variável. É uma palavra-chave. Você não pode modificar este
o valor.
Veja também:
Tutorial:Este JavaScript
- Página Anterior Aplicar JS Função
- Próxima Página Encerramento de JS