Javascript: call(), aplicar() e bind()
call(), aplicar() e bind() — uma nova esperança
até agora temos tratado funções como objetos que são compostos por um nome (opcional, pode ser também uma função anônima) e o código é executado quando é chamado. Mas essa não é toda a verdade. Como uma pessoa que ama a verdade, devo dizer – lhe que uma função realmente olha mais perto da seguinte imagem:

o Que é isso??????? Não te preocupes! Passarei agora por estes três métodos semelhantes que aparecem em cada função com exemplos. Rejubilem!
bind()
O oficial docs dizer: bind() método cria uma nova função que, quando chamado, tem a sua this palavra-chave definida para o valor fornecido. (Na verdade, fala sobre ainda mais coisas, mas vamos deixar isso para outra hora 🙂
isto é extremamente poderoso. Vamos definir explicitamente o valor de this ao chamar uma função. Vejamos cooooode:
bind() method on line 14.Vamos quebrá-lo para baixo. Quando usamos o bind() método:
- JS motor é a criação de um novo
pokemonNameinstância e vinculaçãopokemonsuathisvariável. É importante entender que copia a função pokemonName. - Depois de criar uma cópia da função
pokemonNameé capaz de chamarlogPokemon(), embora não estivesse no objeto pokemon inicialmente. Ela agora reconhece suas propriedades (Pika e Chu) e seus métodos.
E a coisa legal é, depois que nós ligamos () um valor que podemos usar a função assim como era qualquer outra função normal. Poderíamos até atualizar a função para aceitar parâmetros, e passá-los assim:
call(), aplicar()
O oficial de documentos para call() dizer: call() chamadas de método, uma função com um determinado this valor e argumentos fornecidos individualmente.
O que isso significa, é que podemos chamar qualquer função, e explicitamente especificar o que this deve referenciar dentro da função chamada. Realmente semelhante ao método bind()! Isso definitivamente pode nos salvar de escrever o código hacky (mesmo que todos nós ainda somos hackerzzz).
As principais diferenças entre bind() e call() é que o call() método:
- Aceita parâmetros adicionais
- Executa a função a que foi convocado imediatamente.
- o método
call()não faz uma cópia da função que está sendo chamada.
call()eapply() servem exactamente para o mesmo fim. A única diferença entre como eles funcionam é que a chamada() espera que todos os parâmetros sejam passados individualmente, enquanto a aplicação() espera uma matriz de todos os nossos parâmetros. Exemplo:
estes métodos construídos, que existem em todas as funções JS podem ser muito úteis. Mesmo se você não acabar usando-os em seu dia-a-dia programação, você ainda vai encontrá-lo muitas vezes ao ler o código de outros povos.se tiver alguma dúvida, como sempre, contacte via Instagram ❤
Leave a Reply