A herança da classe ES6 usa a palavra-chave extends, então como é implementada no ES5?
O ES5 usa uma combinação de objeto construtor e protótipo para simular herança, por isso também é chamado de herança combinada;
O princípio básico: peça emprestado o construtor pai através de call () e aponte isso do tipo pai para este do subtipo;
Essa herança está realmente chamando o construtor pai no construtor filho quando o construtor filho é chamado para criar o objeto de instância, então você pode obter os membros do construtor pai e modificar o presente do construtor pai chamado Basta apontar para uma sub-função, o membro será herdado na sub-função;
Em uma palavra: use call () para chamar o construtor pai no construtor filho para obter herança; lembre-se de modificar isso no construtor pai para isso na função filho
função Pai (uname, idade) { this.uname = uame; this.age = idade; } function Filho (uname, idade) { Father.call (this); }
Método de herança de objeto de protótipo de empréstimo
Son.prototype = new father (); // Como o método no objeto protótipo de Father pode ser acessado através da cadeia de protótipos Son.prototype.constructor = Son; // A operação de atribuição acima fará o construtor de Son apontar para Father