Este artículo describe el uso de la herencia del constructor que puede ser utilizado por la encapsulación JS. Compártelo para su referencia. Los detalles son los siguientes:
Echemos un vistazo al siguiente código
Métodos utilizados en la biblioteca (yui):
Copie el código de la siguiente manera: Function Extend (Child, Parent) {
var f = function () {};
F.Prototype = parent.prototype;
Child.prototype = new f ();
Child.prototype.Constructor = Child;
Child.uber = parent.prototype;
}
También hay un método de herencia de copia, copia del atributo:
Este método es diferente de antes. Dado que el prototipo infantil se ha extendido, no hay necesidad de restablecer la propiedad infantil.prototype.constructor porque no se sobrescribirá nuevamente.
En comparación con el método anterior, este método obviamente es mejor en eficiencia. Porque lo que se ejecuta aquí es una copia del prototipo de subobjeto uno por uno. En lugar de una simple consulta de cadena prototipo.
Este método solo es aplicable a los objetos que solo contienen tipos de datos básicos. Todos los tipos de objetos, incluidas las funciones y las matrices, no son replicables. Solo apoyan el paso de referencia.
Copie el código de la siguiente manera: función extend2 (niño, padre) {
var p = parent.prototype;
var c = child.prototype;
para (var i en p) {
c [i] = p [i];
}
C.UBER = P;
}
var forma = function () {}
var twodshape = function () {}
Shape.prototype.name = 'Shape';
Shape.prototype.toString = function () {
devolver esto.name;
}
extender2 (twodshape, forma);
var t = new twodShape ();
T.Name
//-> "forma"
T.ToString ();
//-> "forma"
Twodshape.prototype.name = 'twodshape';
T.Name
//-> "forma 2d"
T.ToString ();
//-> "forma 2d"
Twodshape.prototype.toString === shape.prototype.tostring
//-> verdadero
Twodshape.prototype.name === shape.prototype.name
//-> falso
Espero que este artículo sea útil para la programación de JavaScript de todos.