miércoles, noviembre 26, 2014

Javascript: Haciendo herencia a través del prototype

Como en js no hay clases reales cuando se quiere obtener un funcionamiento de delegación similar hay que acudir a patrones más o menos liosos para ello.

La forma más efectiva de hacerlo (en términos de memoría) es haciendo uso de los prototypes de las funciones tal y como sigue:

//Super class
var Car = function(loc){
this.loc=loc;
};
Car.prototype.move=function(){
this.loc++;
};
//Sub class
var Van = function (loc){
Car.call(this.loc);
}
Van.prototype=Object.create(Car.prototype);
Van.prototype.constructor=Van;
Van.prototype.grab=function(){
//whatever
}
var zed = new Car(3);
zed.move();
var amy=new Van(9);
amy.move();
amy.grab();


PD: Sacado del curso de Udacity-Object Oriented Javascript (https://www.udacity.com/course/ud015), si puedes hazlo.