Boa noite
Bom eu dei um
console.log(typeof Cliente)
e a saida foi uma "function"
e depois dei
console.log(typeof andre)
e a saida foi um "object"
Não consegui entender o porque, os dois não deveriam ser do mesmo tipo?
Boa noite
Bom eu dei um
console.log(typeof Cliente)
e a saida foi uma "function"
e depois dei
console.log(typeof andre)
e a saida foi um "object"
Não consegui entender o porque, os dois não deveriam ser do mesmo tipo?
Boa tarde Renan, tudo certo?
Você trouxe uma ótima dúvida que evidencia como essa linguagem de programação foi mudando conforme o tempo e deixando alguns comportamentos que podem ser considerados inesperados.
A chamada typeof andre
retornar object
faz sentido, pois andre
é um objeto instanciado da classe Cliente
. Ou seja, andre
representa um cliente, e a classe Cliente
representa quais são os atributos e comportamentos que um cliente tem.
Mas então porque typeof Cliente
não nos retorna Class
ou algo parecido? É aí que entra uma questão mais histórica: as classes só foram introduzidas no ECMAScript 2015, ou seja, a palavra reservada typeof
precede a existência das classes. Eu confirmei na documentação do MDN e não existe um retorno específico para as classes, elas aparentemente entram na categoria function
.
Mas existe uma outra instrução que pode nos ajudar a lidar com classes e protótipos que é a instanceof
, que eu recomendo conferir depois de terminar os cursos de JavaScript para back end .
Espero ter ajudado e bons estudos!