Hi everyone! I'm the author of code.mu :)
I'd love to chat with my non-Russian audience. I'm looking for your feedback on the site and the translation quality. Let's chat:)
⊗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