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?
ATÉ 50% OFF
TÁ ACABANDO!
0 dias
0 horas
0 min
0 seg
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!