Desta vez, falaremos sobre métodos de herança de combinação, protótipo, parasita e parasita.
1. Herança combinada : também conhecida como herança pseudo-clássica, refere-se a um método de herança que combina cadeias de protótipo e tecnologias de construtor emprestado em uma peça.
Vamos dar uma olhada em um exemplo:
função supertype (nome) {this.name = name; this.colors = ["vermelho", "azul", "verde"]; } Supertype.prototype.sayname = function () {alert (this.name); } função subtype (nome, idade) {supertype.call (this, nome); this.age = idade; } // Método de herança subtype.prototype = new supertype (); Subtype.prototype.sayage = function () {alert (this.age); } var instance1 = novo subtipo ("nicholas", 29); instância1.colors.push ("preto"); alerta (instance1.colors); // vermelho, azul, verde, preto instância1.SayName (); // nicholas instance1.sayage (); // 29 var instance2 = novo subtipo ("Greg", 27); alerta (instance2.colors); // vermelho, azul, verde instância2.SayName (); // Greg Instância2.Sayage (); // 27A herança combinada evita as deficiências das cadeias de protótipo e construtores de emprestadores e integra suas vantagens.
2. Herança de protótipo
A herança pode ser implementada sem construtores predefinidos, realizando essencialmente a cópia superficial de um determinado objeto. A cópia copiada pode ser modificada ainda mais.
função objeto (o) {função f () {}; F.Prototype = O; retornar novo f; } var pessoa = {nome: "nicholas", amigos: ["Shelby", "Court", "Van"]}; var de outro, objeto (pessoa); outro lugar.name = "Greg"; outro lugar.friends.push ("rob"); var de outro, objeto (pessoa); outro lugar.name = "Linda"; outro lugar.friends.push ("Barbie"); alerta (pessoa.friends); // Shelby, Tribunal, Van, Rob, Barbie3. Herança parasitária
Muito semelhante à herança do protótipo, é também criar um objeto com base em um objeto ou em algumas informações e aprimorar o objeto e, finalmente, retornar o objeto. Para resolver o problema de ineficiência causado pelo padrão de herança de combinação devido a várias chamadas para o construtor de supertipo, esse padrão pode ser usado com a herança combinada.
função objeto (o) {função f () {}; F.Prototype = O; retornar novo f; } função criativa (original) {var clone = objeto (original); clone.sayhi = function () {alert ("oi"); }; clone de retorno; } var pessoa = {nome: "nicholas", amigos: ["Shelby", "Court", "Van"]}; var de outro = criador (pessoa); outroperseson.sayhi ();4. Herança de combinação parasitária
A combinação das vantagens da herança parasitária e da herança combinada é a maneira mais eficaz de alcançar a herança do tipo básico.
// Função de protótipo herdando (subtipo, supertype) {função f () {}; F.prototype = supertype.prototype; var prototype = novo f; prototype.constructor = subtipo; subtype.prototype = prototype; } // função do método superclass supertype (nome) {this.name = name; this.colors = ["vermelho", "azul", "verde"]; } Supertype.prototype.sayname = function () {return this.name; } // Função do método da subclasse supertype (nome) {this.name = name; this.colors = ["vermelho", "azul", "verde"]; } Supertype.prototype.sayname = function () {return this.name; } // Subclasse da função do método subtipo (nome, idade) {supertype.call (this, nome); this.age = idade; } // prototype Extend (subtipo, supertipo); // Método da subclasse subtype.prototype.sayage = function () {return this.age; } var instance1 = novo subtipo ("Shelby"); var instance2 = novo subtipo ("Tribunal", 28); Instância1.Colors.Push ('Black'); alerta (instance1.colors); // vermelho, azul, verde, alerta preto (instance2.Colors); // alerta vermelho, azul, verde (instância1 da instância do subtipo); // true alert (instance1 instanceof supertype); //verdadeiroA eficiência deste exemplo é refletida na medida em que chama o construtor de supertipo apenas uma vez e, portanto, evita a criação de propriedades desnecessárias desnecessárias no subtipo.prototipo. Ao mesmo tempo, a cadeia de protótipos pode permanecer inalterada. Portanto, a instância do ISPrototypeOf () também pode ser usada normalmente. Os desenvolvedores geralmente acreditam que a herança combinatória parasitária é o paradigma de herança mais ideal para tipos de referência.
O artigo acima, a herança orientada a objetos JS-uma explicação detalhada da herança de combinação múltipla é todo o conteúdo que compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.