Uma dúvida: o que a professora denomina "Contexto" refere-se ao "Escopo" das propriedades do objeto? O que estiver dentro do objeto passa a ter um escopo restrito ao objeto? Ou é contexto mesmo?
Obrigado!
Uma dúvida: o que a professora denomina "Contexto" refere-se ao "Escopo" das propriedades do objeto? O que estiver dentro do objeto passa a ter um escopo restrito ao objeto? Ou é contexto mesmo?
Obrigado!
Oi, Juan! Tudo bem?
Quando a professora se refere a "contexto", ela está falando sobre o objeto ao qual a função está associada no momento da execução. No JavaScript, o valor de "this" (isso) é determinado pela forma como a função é chamada, ele não é fixo e pode variar durante a execução do programa.
No exemplo dado na aula, quando a função exibirInfos
é chamada como um método do objeto user
(ou seja, user.exibirInfos()
), o valor de "this" dentro da função é o objeto user
, nesse caso, o "contexto" é o objeto user
.
No entanto, quando a função exibirInfos
é atribuída a uma variável exibir
e chamada como uma função independente (ou seja, exibir()
), o valor de "this" dentro da função é o objeto global, nesse caso, o "contexto" é o objeto global.
O termo "escopo", por outro lado, refere-se ao alcance de uma variável ou função em seu código. No JavaScript, cada função cria um novo escopo, de forma que, variáveis definidas dentro de uma função não são acessíveis fora da função, mas variáveis definidas fora de uma função são acessíveis dentro da função (a menos que a função defina sua própria variável com o mesmo nome).
Logo, podemos concluir que o que a professora chama de "contexto" é diferente do "escopo" das propriedades do objeto, pois o "contexto" refere-se ao objeto ao qual a função está associada no momento da execução, enquanto o "escopo" refere-se ao alcance de uma variável ou função em seu código.
Espero ter ajudado! Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!
Um forte abraço e bons estudos!