Agora, vamos ver o que acontece quando trazemos a palavra-chave para a mistura.
Aqui é onde as coisas ficam divertidas no primeiro bloco de código.
Nós temos um método chamado Say hi, que é uma função que chama um timeout definido e cancelou
logs a string alta concatenada com o valor da propriedade do primeiro nome na palavra-chave.
Isso antes de ver o que esse código retorna.
Faça uma pausa no vídeo e pense em qual é a palavra-chave a que se refere.
Volte para as duas primeiras regras é a palavra-chave no contexto global.
Ou é a palavra-chave dentro de um objeto declarado.
Você pode estar pensando que está claramente dentro de um objeto declarado e você está certo.
No entanto, uma vez que o tempo limite estabelecido é chamado em um ponto posterior, a palavra-chave não se
refere ao objeto pai.
Ele realmente se refere ao objeto global.
Isso é muito complicado e percorre muitos iniciantes.
Então, vamos passar por isso novamente, uma vez que o tempo limite definido é chamado em um ponto posterior.
o tempo limite, é um método no objeto da janela, mesmo que seja definido dentro do
objeto frio quando é declarado o contexto em que a função é executada é realmente o global contexto.
O objeto a que está anexado é na verdade a janela, como dissemos antes de definir
Então, como podemos resolver esse problema, pois estamos perdendo o contexto correto da palavra-chave.
Isso devemos definir explicitamente, mas queremos que a palavra chave a que se referir.
Nós podemos fazer isso usando chamada e aplicar, mas como queremos chamar a função em um
momento posterior, não queremos usar nenhuma dessas.
Lembre-se que ligue e aplique invoque a função de imediato.
Assim, isso seria uma derrota do propósito de um tempo definido que é para executar uma função em
um momento posterior.
Então, isso nos deixa com ligação no segundo bloco de código, podemos resolver nosso problema passando como o primeiro
parâmetro para o método bind.
O valor que queremos que a palavra-chave que se refere a você possa estar totalmente confuso quanto ao motivo pelo
qual passamos a palavra-chave como o primeiro parâmetro.
Mas dê um passo para trás e pergunte-se dentro do objeto de código ao qual se refere a palavra-chave.
Bem, ele realmente se refere ao próprio objeto de culto.
da palavra-chave para ser o que queremos quando a função dentro do tempo limite estabelecido é chamada em vez
da palavra-chave que você pode passar na variável chamada ao método bind e você obterá o mesmo resultado.
Então, estamos vinculando o valor correto
Mas, mais comumente, você verá o código que usa a palavra-chave.
Para recapitular, vimos que o método bind retorna uma definição de função diferente de chamada e
é muito útil para definir o valor da palavra-chave quando não conhecemos todos os valores de
argumentos para passar para a função ou quando estamos trabalhando com código assíncrono.
Uma nota final.
O material que estamos abrindo aqui é bastante avançado.
bem como será perguntado sobre as entrevistas se você ainda estiver bastante perturbado com este exemplo.
Mas se você está procurando tornar-se um desenvolvedor javascript profissional, esse é o tipo de código que você verá nas bases
do código de produção,
Não se preocupe.
Eu ensinei muito esse tópico e sempre é algo que confunde as pessoas na primeira tentativa de caminhar por
cada linha de código e certifique-se de digitar os exemplos no console cromado para ver o que está acontecendo.
Como sempre, sinta-se à vontade para fazer essas perguntas.
Estamos aqui para ajudá-lo a aprender no próximo vídeo.
Vamos abranger brevemente a última regra para determinar a palavra-chave, então