Blog

ExtJS and Sencha Touch Themes and Templates

Herencia en JavaScript

Mar 18, 2009 | Español | By | 6 Comments

JavaScript tiene una forma única de crear objetos y realizar herencia entre ellos, a esta forma se le llama “prototypal inheritance”, básicamente un objeto puede heredar métodos y propiedades de otros objetos creando un prototipo para generar nuevos objetos.

Herencia en JavaScript
Author: Crysfel

I'm a software developer with 6+ years of experience, when I'm not developing software I may be writing a tutorial, you can follow me on twitter

La herencia de prototipo se realiza utilizando la propiedad “prototype” que se encuentra en todos los objetos. En JavaScript la herencia es simple pero con un poco de trabajo se puede obtener herencia múltiple; en este tema se muestra como realizar la herencia simple.

Es importante mencionar que la propiedad “prototype” sólo puede heredar de otros objetos y no de otros prototipos o funciones constructoras. A continuación se muestra un ejemplo para una mejor comprensión:

//Super "class"
var Animal = function(type){
	this.type = type;
}

Animal.prototype.getType = function(){
	return this.type;
}

var Dog = function(options){
	this.breed = options.breed;
}

//Inheritance
Dog.prototype = new Animal('Dog');

//attach methods to the Dog "class"
Dog.prototype.run = function(){
	console.debug('the '+this.breed+' '+this.type+' is running!');
}
//new instance
var beagle = new Dog({breed:'Beagle'});

//calling a method of the super "class"
console.debug(beagle.getType());
beagle.run();

La parte más importante del ejemplo anterior es donde se realiza la herencia, “Dog.prototype = new Animal(‘Dog’);”. La variable Dog hace referencia a la función constructora del objeto Dog, “new Animal()” está creando un objeto Animal el cual es asignado al prototipo de la función constructora del objeto “Dog”; de esta forma el objeto Dog contendrá todos los método y propiedades el objeto “Animal” cuando se creen nuevas instancias.

Conclusión

La herencia simple es algo que utilizaremos cuando desarrollemos componentes, es necesario que tengamos este concepto en mente.

6 Responses to “Herencia en JavaScript”

  • Claudio Morales Mar 19, 2009

    Hola que tal

    Muy buena información es algo importante de explotar para generar aplicaciones web mas poderosas

    saludos.

  • Alex May 30, 2009

    good

  • HalleyR Jul 21, 2009

    Una pregunta Crisfel por que en la consola primero imprime Dog y luego
    the Beagle Dog is running!
    si la primera sentencia era

    Dog.prototype.run = function(){
    	console.debug('the '+this.breed+' '+this.type+' is running!');
    }
    
    • treboR Nov 01, 2009

      HalleyR, fíjate en lo ke hacen estas dos líneas.
      //lláma a imprimir en la consola el tipo.
      1. console.debug(beagle.getType());
      //lláma el método ó función run, ke tiene dentro una llamada a imprimir en la consola
      2. beagle.run();

  • Roberto Oct 25, 2010

    Muchas gracias. Me ha aclarado el tema de las clases en javascript. Me temo que HTML5 va a obligar a usar mucho esto :)

  • Rodolfo Dec 26, 2010

    Buenos dias. Estoy en mis primeros pininos de ExtJs y he optado por usarlo con CodeIgniter, ya que los que conosco usan php para todo.

    Me han metido en la cabeza el utilizar Spring MVC Framework y Hibernate Framework. Mi pregunta es si tendria mucha ventaja sobre el php.

    Muchas Gracias

Leave a Reply







Updates

RSS

Subscribe to our feeds to receive updates of our newest posts and free tutorials.

Site search

Maybe we have what you need, would you like to search first?

Donations

Would you buy me a cup of coffee? I am sharing my knowledge and time with you, help this project grow. Thank you!