Hoy un método rápido para simular herencia en Javascript.
function extend(Child, Parent) {
Child.prototype = (function () {
function F() {}
F.prototype = Parent.prototype;
return new F();
})();
Child.prototype.constructor = Child;
Child.parent = Parent.prototype;
return Child.prototype;
}
Y cómo lo usamos:
var Animal = (function () {
var Clazz = function () {
this.name = "Animal";
};
var p = extend(Clazz, Object);
p.run = function () {
console.log(this.name + " running.");
};
return Clazz;
})();
var Dog = (function () {
var Clazz = function () {
this.name = "Dog";
};
extend(Clazz, Animal);
return Clazz;
})();
var cat = new Animal();
cat.run(); // "Animal runnning"
var dog = new Dog();
dog.run(); // "Dog runnning"