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

herança de prototype

tem como alguem me explicar de uma forma mais resumida o prototype e heranças?

1 resposta
solução!

Olá, Gabriel.

Vou tentar te passar aquilo que consegui entender.

O javaScript não tem uma implementação de classes como PHP e JAVA. Com a chegada do ES6, houve uma implementação da sintaxe, para tornar mais simples a escrita dessas classes. Mas no fundo é só uma forma, mais simples, de usar o prototype. Pois toda a linguagem é baseada nesse conceito de protótipo.

Quase tudo que vc usa no javascript é um objeto, e esses objetos, tem uma forte tendência a herdar (Inheritance) as propriedades e métodos de um objeto anterior. Desde que, para isso, ele tenha alguma ligação.

Essa herança + ligação (link) é denominado como Prototype Chain.

A cadeia de protótipos, citada anteriormente percorre todos os objetos ligados, até chagar no "Objeto raiz" (Object.prototype), que por sua vez não herda propriedade de nenhum outro (null).

Independente de qual seja, Objeto, função ou array. Todas vão percorrer a estrutura de cadeia até encontrar a propriedade que foi declarada, até o objeto raiz.

Ex: Vc pode testar usando o console do browser

Objetos

const myObject = {
    nome: "Eu",
    idade: "30"
}

myObject

//myObject.__proto__ --> Object.prototype --> null

Array

const myArray = [1, 2, 3, 'eu', 30];

myArray
//myArray.__proto__ --> Array.prototype --> Object.prototype --> null

Função

function myFunction() {
    return "olá mundo"
}

myFunction
//myFunction.__proto__ --> Function.prototype --> Object.prototype --> null

Vc só precisa se atentar ao fato de que existem as propriedades do Prototype Chain e as propriedade de cada objeto.

Ex:

function Person(nome, idade) {
  this.nome = nome;
  this.idade = idade;
}

const pessoa = new Person("Eu", 30)

pessoa herda nome e idade e todas as propriedades da Function.prototypee Object.prototype

Enquanto,

Person herda Function.prototypee Object.prototype

bom, pra não ser mais prolixo eu vou parar por aqui kkkk

espero ter ajudado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software