La forma más fácil de implementar la herencia de JavaScript es el método de llamada (o método de aplicación) y el método de la cadena prototipo, pero ambos métodos tienen deficiencias, y su mezcla es un buen método de implementación de herencia. Aquí hay ejemplos:
La copia del código es la siguiente:
función animal (edad) {
this.age = edad;
}
Animal.prototype.sayage = function () {
Window.alert ("Mi edad es"+this.age+"!");
};
Function Dog (edad, nombre) {
Animal.call (esta, edad);
this.name = name;
}
Dog.prototype = new Animal ();
Dog.prototype.sayname = function () {
Window.alert ("Soy un"+this.name+"!");
};
var dog = nuevo perro (15, "perro");
dog.sayName ();
dog.sayage ();
Para el animal de clase, tiene un atributo de la edad y la función del atributo de campo dice que dice. La definición del método Sayage utiliza el método prototipo. La clase de perros debe heredar animal, y sus atributos de campo también tienen nombre además de la edad. A través de animal.call (esta, edad); El perro puede heredar la edad del atributo de campo de los animales y inicializarla. El primer parámetro del método de llamada es este puntero a la clase hereditaria, y el segundo parámetro es el parámetro del constructor de la clase animal. De hecho, la herencia se puede lograr a través del método de llamadas, pero el único requisito es que los atributos de la función de la clase principal deben definirse en el constructor, que no es adecuado para que los atributos de la función aquí se definan en el prototipo (definir los atributos de la función en el prototipo es más intuitivo que la definición en el constructor). Para heredar los atributos de la función definidos por el prototipo de Animal, la declaración requerida es "dog.prototype = new animal ();". La función sayname () en la clase de perro es su propio atributo de función.
Además de esta forma más clásica de implementar la herencia, actualmente hay algunas bibliotecas gratuitas disponibles. Pero cuando pienses en todo tipo de bibliotecas, serás muy inmenso. ¡Estudiemos cuando tengas tiempo y lo necesite!