POO en Javascript con Prototype

Hola, en este post voy a presentar cómo programar clases en Javascript usando Prototype js.

Aquí definiré una clase Persona, con un método decirNombre que emita un cuadro de texto con el nombre que se le asigne.


var Persona = Class.create({
    /**
    *    Este es el constructor de la clase Persona.
    **/
    initialize: function(nombre) {
        this.nombre = nombre;
    },
    
    /**
    *    Este es un método común.
    **/
    decirNombre: function() {
        return alert('Mi nombre es ' + this.nombre);
    }
});



Luego, aplicamos el concepto de herencia para crear la clase PersonaEnojada, hija de Persona.


var PersonaEnojada = Class.create(Persona, {
    /**
    *    Para ejecutar el método que queremos sobreescribir, usamos $super.
    **/
    initialize: function($super, nombre) {
        $super(nombre);
    },
    
    /**
    *    No dirá el nombre, está muy enojado/a.
    **/
    decirNombre: function() {
        return alert('No te quiero decir mi nombre!');
    }
});



Aquí las instanciaremos para probarlas:

var p1 = new Persona("pepe");
var p2 = new PersonaEnojada("pepo");

p1.decirNombre();    // Mostrará: Mi nombre es pepe
p2.decirNombre();    // Mostrará: No te quiero decir mi nombre!





Eso es todo, espero que les sea útil.
Saludos!

Para más información pueden visitar: http://prototypejs.org/learn/class-inheritance.html

Comentarios

Entradas populares de este blog

Ordenar lista en python - Super fácil!