De fato, quando comecei a aprender JS, olhei para a implementação da herança. Naquela época, tentei entender os segmentos de código que vi no livro. Repensei hoje e senti que esse era o resultado da evolução da exploração de pensamento.
Herança significa reutilização.
Se você deixar de lado a idéia inerente de herança e deixar B reutilizar os membros de A, a maneira mais simples e rude de fazê -lo, b = a;
Então, a pergunta é: qualquer alteração para B é uma alteração para um (o mesmo objeto).
OK, então copie um. Se a cópia rasa não for segura o suficiente, use cópia profunda.
Problema: o código é reutilizado, mas a memória é desperdiçada (independentemente de variáveis ou métodos, é um objeto em JS).
Se você não copiar, ler e escrever, pode usar o protótipo JS, b .__ proto__ = a. Geralmente, não mudamos __proto__ diretamente, é muito violento. O JS fornece um método que pode atingir a meta mais "gentil" - object.create (b).
Esse método é viável, mas este é apenas um modo de reutilização para objetos específicos. E se alcançarmos "o objeto criado usando o construtorb pode reutilizar o protótipo do objeto da construtora"?
A resposta é: Trate B como construtorb.prototype e trate um como construtora.prototipo.
pergunta:
Solução:
Ao declarar o construtor, o sistema solicitará automaticamente o construtorb.prototype.constructor = construtorb; No código acima, o construtor é jogado fora e o construtor é adicionado.
O exposto acima é a herança mais básica. Não está dentro do escopo deste artigo, sobre como as subclasses chamam o construtor e os membros da classe dos pais de maneira mais geral (como este._Super), como implementar o modo de herança de maneira mais geral (como a = herança de (b)), etc.
O exposto acima é o conteúdo completo da herança antiquada das classes JavaScript que o editor traz para você. Espero que todos apoiem mais wulin.com ~