Se parece al método Object.create
de Crockford, pero esta función se usa para "configurar" constructores.
Acepta dos constructores como argumentos, y configura el prototype
del primero.
Déjame cambiar el nombre de los nombres de las variables crípticos:
function G(sub, super) {
var F = function() { };
F.prototype = super.prototype;
sub.superLink = super.prototype;
sub.prototype = new F();
}
function Super() {
//...
}
Super.prototype.member1 = 'superMember1';
function Sub() {
this.member2 = 'subMember2';
}
G(Sub, Super);
new Sub(); // Object { member2="subMember2", member1="superMember1"}
Editar: La propiedad T
se utiliza simplemente para saber lo que es el constructor "super" de la sub, que he visto este patrón en otros lugares, como en el libro Pro JavaScript Patrones de diseño (page 43), con algunas adiciones, para evitar que la propiedad constructor
para que apunte al objeto equivocado:
Consulte también:
Supongo que lo que estás preguntando es "¿por qué alguien haría esto?", Porque aparte de responder "confundir a la gente", no tengo nada para ti. – wlangstroth
¿Dónde encontraste esto? La propiedad 'T' que se está configurando no es típica de ningún patrón que haya visto con respecto a la herencia prototípica. Pero lo que creo que esto podría ser es tener el constructor heredado así como la cadena de prototipos. –