⊗jsPmCxBM 443 of 505 menu

Vinculando contexto através do método bind em JavaScript

O próximo método bind permite vincular o contexto a uma função permanentemente. Como resultado, este método retorna uma nova função, dentro da qual this terá um valor rigidamente definido.

Vamos ver um 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' (lembrando que em elem está o input com value igual a 'text'):

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'

Não é necessário armazenar o resultado do bind em uma nova função newFunc, pode-se simplesmente sobrescrever func. Após isso, func será a mesma função de antes, mas com o this rigidamente vinculado:

func = func.bind(elem);

Suponha o seguinte código:

<input id="elem" value="hello"> let elem = document.getElementById('elem'); function func(name, surname) { console.log(this.value + ', ' + name + ' ' + surname); } // escreva aqui a construção com bind() func('John', 'Smit'); // deve exibir 'hello, John Smit' func('Eric', 'Luis'); // deve exibir 'hello, Eric Luis'

Escreva no local indicado a construção com o método bind de forma que this dentro da função func sempre aponte para o input da variável elem.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar