⊗jsPmCxCM 440 of 505 menu

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

Então, já descobrimos como this realmente funciona. Vamos agora examinar os métodos que permitem indicar forçadamente em qual contexto uma função é chamada (ou seja, dizer forçadamente a que this é igual).

O primeiro método que vamos examinar chama-se call. Vamos ver o seu funcionamento com um exemplo. Suponha que temos um input:

<input id="elem" value="text">

Vamos obter a referência para este input e armazená-la na variável elem:

let elem = document.querySelector('#elem');

Agora, vamos criar uma função func, dentro da qual vamos exibir this.value:

function func() { console.log(this.value); }

Por enquanto, nossa função não sabe a que this se refere. Se a vinculássemos via addEventListener, aí sim. Mas não vamos fazer isso. Em vez disso, vamos simplesmente chamar nossa função, dizendo a ela que this deve ser igual a elem.

Isso é feito assim: func.call(elem). Este código é equivalente a simplesmente chamar a função func assim: func(), apenas com a condição de que this seja igual a elem.

Então, a sintaxe do método call é: função.call(objeto). Vamos juntar tudo:

let elem = document.querySelector('#elem'); function func() { console.log(this.value); // exibirá o value do input } func.call(elem);

Dada a função:

function func() { console.log(this.value); }

Dados três inputs:

<input id="elem1" value="text1"> <input id="elem2" value="text2"> <input id="elem3" value="text3">

Usando o método call e a função func, exiba na tela o value de cada um dos inputs.

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