"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que usar "var that = this;" em JavaScript?

Por que usar "var that = this;" em JavaScript?

Publicado em 23/12/2024
Navegar:629

Why Use

Compreendendo o objetivo de "var that = this;" em JavaScript

Ao trabalhar com JavaScript, você pode encontrar trechos de código que incluem a instrução "var that = this;". Esta construção desempenha um papel crucial na preservação do contexto de "this" dentro de funções aninhadas, particularmente em manipuladores de eventos.

Em JavaScript, a palavra-chave "this" representa o contexto atual ou o objeto que possui o código que é usado in. No entanto, quando uma função é invocada dentro de outra função, o valor de "this" muda. Isso pode levar a um comportamento inesperado, especialmente em código orientado a eventos, onde os manipuladores de eventos residem em retornos de chamada.

O objetivo de atribuir "isto" a "aquilo" é capturar o contexto atual do objeto antes que ele seja perdido devido a uma mudança de escopo. Ao usar o alias de "this" para "that", você garante que o valor original de "this" permaneça acessível mesmo em funções aninhadas.

Considere o seguinte exemplo:

$('#element').click(function() {
    // this is a reference to the element clicked on

    var that = this;

    $('.elements').each(function() {
        // this is a reference to the current element in the loop
        // that is still a reference to the element clicked on
    });
});

Neste código, a função manipuladora de eventos tem acesso ao elemento que foi clicado através da palavra-chave "this". No entanto, dentro da função aninhada (each()), o valor de “this” refere-se ao elemento atual no loop. Ao capturar "this" como "that" na função externa, você ainda pode acessar o elemento que foi clicado inicialmente.

Usar aliases diferentes de "that" é uma prática recomendada para facilitar a leitura. No exemplo acima, um alias mais descritivo como "clickedEl" deixaria mais claro a que a variável se refere.

Em conclusão, "var that = this;" é uma técnica comum em JavaScript para preservar o valor de "this" em diferentes escopos. Ele garante que o contexto original do objeto seja mantido mesmo quando funções aninhadas são invocadas.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3