Este artigo descreve o uso de herança do construtor que pode ser usado pelo encapsulamento JS. Compartilhe para sua referência. Os detalhes são os seguintes:
Vamos dar uma olhada no seguinte código
Métodos usados na biblioteca (yui):
Copie o código da seguinte forma: Função Extend (filho, pai) {
var f = function () {};
F.Prototype = Parent.prototype;
Child.prototype = new F ();
Child.prototype.Constructor = Child;
Child.uber = parent.prototype;
}
Há também um método de herança de cópia, cópia de atributo:
Este método é diferente de antes. Como o protótipo infantil foi estendido, não há necessidade de redefinir a propriedade Child.prototype.Constructor, porque ela não será substituída novamente.
Comparado com o método anterior, esse método é obviamente melhor em eficiência. Porque o que é executado aqui é uma cópia do protótipo sub-objeto um por um. Em vez de uma simples consulta de cadeia de protótipos.
Este método é aplicável apenas a objetos que contêm apenas tipos de dados básicos. Todos os tipos de objetos, incluindo funções e matrizes, não são replicáveis. Eles só apoiam a passagem de referência.
Copie o código da seguinte forma: função estend2 (filho, pai) {
var p = parent.prototype;
var c = child.prototype;
para (var i em p) {
c [i] = p [i];
}
c.UBER = P;
}
var shape = function () {}
var twodShape = function () {}
Shap.prototype.name = 'shape';
Shape.prototype.toString = function () {
retornar este.name;
}
estend2 (twodshape, forma);
var t = new twodShape ();
t.name
//-> "Shape"
t.ToString ();
//-> "Shape"
Twodshape.prototype.name = 'twodshape';
t.name
//-> "Shape 2D"
t.ToString ();
//-> "Shape 2D"
Twodshape.prototype.toString === Shape.prototype.ToString
//-> true
Twodshape.prototype.name === shape.prototype.name
//-> false
Espero que este artigo seja útil para a programação JavaScript de todos.