JavaScript "this" mistério do ponteiro em funções aninhadas
Em um trecho de código JavaScript, você encontrou um comportamento inesperado em relação ao "this "ponteiro dentro de uma função aninhada. Apesar de definir a função aninhada dentro de um método de objeto, o ponteiro "este" dentro da função aninhada aponta para o objeto "janela" global.
O comportamento do ponteiro "este" é determinado pelo método de invocação de função em JavaScript. Existem três métodos principais:
Invocação direta: someThing.someFunction(arg1, arg2, argN)
Chamada de função com call(): someFunction.call(someThing, arg1, arg2, argN)
Chamada de função com apply() : someFunction.apply(someThing, [arg1, arg2, argN])
No exemplo que você forneceu, a função aninhada é invocada sem nenhum dos métodos explícitos de invocação de função. Como resultado, o ponteiro "este" é padronizado para o objeto global, que normalmente é o objeto "janela" em um ambiente de navegador.
Para especificar explicitamente o comportamento do ponteiro "este", você pode usar as seguintes modificações :
Utilizando qualquer um desses métodos , você pode controlar o comportamento do ponteiro "this" dentro de funções aninhadas e garantir que ele se refira ao objeto desejado.
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