Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

para que serve Prototype em Pessoa.prototype.obterNomeCompleto?

Na seguinte parte da explicação, porque foi usado PROTOTYPE? O que esse comando faz/contribui para Pessoa.prototype.obterNomeCompleto?

Inclusive é possível alterar a definição do método diretamente na própria classe, dessa maneira, todas as instâncias de Pessoa, criadas antes ou depois da modificação, automaticamente "herdarão" a modificação:

Pessoa.prototype.obterNomeCompleto = function() {

  return `${this.nome} - ${this.sobrenome}`;
}
1 resposta
solução!

Olá VInicius, tudo bem?

Então, isso vem do core da linguagem, javascript é uma linguagem baseada em protótipos, é através deles que garantem herança de atributos e métodos, antes do ES5, não existia classe em javascript, e tudo se baseava em criar funções e alterar o protótipo delas para adicionar um comportamento desejado

E mesmo hoje em dia as classes acabam sendo apenas um camada de abstração em cima desses prototipos, então quando você define uma classe você está criando um Prototype por debaixo dos panos

E o grande poder disso é que podemos acessar qualquer prototype existente e fazer mudanças na estrutura, inclusive coisas cores da linguagem, por exemplo:

String.prototype.prety = function(){
    return "------" + this + "------"
}

Todos os tipos da linguagem são um Prototype, então String, Arrays, Numbers, podem ser acessados e adicionar métodos sobre eles, então agora eu posso tranquilamente fazer:

"aaaaaaaa".prety()
"------aaaaaaaa------"

Então quando fazemos .prototype no exemplo, estamos acessando a estrutura da classe e adicionando um método que queremos que todos os objetos tenham como um método padrão :)

Conseguiu Compreender?

Abraços e Bons Estudos!