Herencia básica de Javascript vs herencia prototípica de Crockford
Tengo una confusión con la herencia recomendada por Crockford, ¿cuál es la principal diferencia entre el método de Crockford y el método genérico (predeterminado)?
//Crockford method
function object(o) {
function F() {}
F.prototype = o;
return new F();
}
La siguiente es una forma más genérica.
function Base(name) {
this.name = name;
}
Base.prototype.getName = function () {
return 'Base :' + this.name;
}
function Child(name) {
this.name = name;
}
Child.prototype.getName = function () {
return 'Child :' + this.name;
}
function Kid(name) {
this.name = name;
}
Kid.prototype.getName = function () {
return 'Kid :' + this.name;
}
Child.prototype = new Base ("childBase");
Kid.prototype = new Child ("kidChild");
var base = new Base ("myBase");
var child = new Child("myChild");
var kid = new Kid("myKid");
console.log(base.getName());
console.log(child.getName());
console.log(kid.getName());
¿Cuál es la diferencia entre los dos anteriores?
En realidad no soy capaz de entender completamente el método de Crockford. ¿Podría alguien ayudarme a resolver los inconvenientes de manera genérica y las ventajas del método de Crockford?