Esta vez hablaremos sobre combinación, prototipo, parasitaria y métodos de herencia de combinación parasitaria.
1. Herencia de combinación : también conocida como herencia pseudo-clásica, se refiere a un método de herencia que combina cadenas prototipo y tecnologías de constructor prestadas en una sola pieza.
Echemos un vistazo a un ejemplo:
function supertype (nombre) {this.name = name; this.colors = ["rojo", "azul", "verde"]; } Supertype.prototype.sayname = function () {alert (this.name); } function subtype (nombre, edad) {supertype.call (this, name); this.age = edad; } // método de herencia subtype.prototype = new SuperType (); Subtype.prototype.sayage = function () {alert (this.age); } var instance1 = new Subtype ("Nicholas", 29); instancia1.colors.push ("negro"); alerta (instancia1.colors); // rojo, azul, verde, negro instancia1.sayname (); // Nicholas instance1.sayage (); // 29 var instance2 = new Subtype ("Greg", 27); alerta (instancia2.colors); // rojo, azul, instancia verde2.sayname (); // Greg instancia2.sayage (); // 27La herencia de combinación evita las deficiencias de las cadenas prototipo y los constructores de préstamos, e integra sus ventajas.
2. Prototipo de herencia
La herencia se puede implementar sin constructores predefinidos, esencialmente realizando copia superficial de un objeto dado. La copia copiada se puede modificar más.
objeto de función (o) {function f () {}; F.Prototype = O; devolver nuevo F; } var persona = {nombre: "nicholas", amigos: ["shelby", "tribunal", "furgoneta"]}; var otroperson = objeto (persona); otroperson.name = "Greg"; otroperson.friends.push ("rob"); var otroperson = objeto (persona); otroperson.name = "Linda"; otroperson.friends.push ("Barbie"); alerta (persona. Friends); // Shelby, Court, Van, Rob, Barbie3. Herencia parásita
Muy similar a la herencia prototipo, también es crear un objeto basado en un objeto o alguna información, luego mejorar el objeto y finalmente devolver el objeto. Para resolver el problema de ineficiencia causado por el patrón de herencia de combinación debido a múltiples llamadas al constructor Supertype, este patrón se puede usar con herencia combinada.
objeto de función (o) {function f () {}; F.Prototype = O; devolver nuevo F; } function createEnother (original) {var clone = object (original); clone.sayhi = function () {alert ("HI"); }; clon de regreso; } var persona = {nombre: "nicholas", amigos: ["shelby", "tribunal", "furgoneta"]}; var otroperson = createanother (persona); otra persona.sayhi ();4. Herencia de combinación parásita
La combinación de las ventajas de la herencia parásita y la herencia combinada es la forma más efectiva de lograr la herencia de tipo básico.
// La función de prototipo heredado extender (subtipo, supertype) {function f () {}; F.prototype = supertype.prototype; prototipo var = nuevo F; prototipo.constructor = subtype; subtype.prototype = prototipo; } // Método SuperClass Función Supertype (name) {this.name = name; this.colors = ["rojo", "azul", "verde"]; } Supertype.prototype.sayname = function () {return this.name; } // Función de método de subclase Supertype (name) {this.name = name; this.colors = ["rojo", "azul", "verde"]; } Supertype.prototype.sayname = function () {return this.name; } // Función de método de subclase Subtype (nombre, edad) {supertype.call (this, name); this.age = edad; } // prototipo extender (subtipo, supertype); // Método de subclase subtype.prototype.sayage = function () {return this.age; } var instance1 = new Subtype ("Shelby"); var instancia2 = nuevo subtipo ("Court", 28); instance1.colors.push ('negro'); alerta (instancia1.colors); // Alerta roja, azul, verde, negra (instancia2.colors); // Alerta roja, azul, verde (instancia1 instancia de subtipo); // True alerta (instancia1 instancia de supertype); //verdaderoLa eficiencia de este ejemplo se refleja en que llama al constructor Supertype solo una vez, y así evita crear propiedades innecesarias innecesarias en el subtipo.prototipo. Al mismo tiempo, la cadena prototipo puede permanecer sin cambios. Por lo tanto, instanciaf e isprototipof () también se pueden usar normalmente. Los desarrolladores generalmente creen que la herencia combinatoria parásita es el paradigma de herencia más ideal para los tipos de referencia.
El artículo anterior JS JS Orientada a los objetos: una explicación detallada de la herencia de combinación múltiple es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.