Saturday, February 16, 2013

Esquema para crear objetos instanciable para javascript con jQuery

Con este esquema puedes crear objetos instanciables en Javascript usando jQuery.
Su uso es muy simple, sólo debes copiar el siguiente código y cambiar las variables que están en mayúsculas.

El esquema

// Helper. Sólo usarlo una vez. Esto resuelve varios problemas con objetos en js.
if ( typeof Object.create !== 'function' ) {
    Object.create = function( obj ) {
        function F() {};
        F.prototype = obj;
        return new F();
    };
}

// Esquema para objetos javascript.
(function(){
    var OBJ_NAME = {
        props: {},
        init: function(props){
            this.props = $.extend({}, this.props, props);
            return this;
        }
    };

    // Para instanciar y ejecutar constructor.
    new_OBJ_NAME = function(props){
        var REL_OBJ_NAME = Object.create(OBJ_NAME);
        return REL_OBJ_NAME.init(props);
    };
})();

// Uso.
props = {/* Las propiedades*/};
obj = new_OBJ_NAME(props);

Ejemplo

(function(){
    var mi_objeto = {
        props: {prop1 : 1, prop2 : 2},

        init: function(props){
            this.props = $.extend({}, this.props, props);
            return this;
        },

        sumar: function(){
            return this.props.prop1 + this.props.prop2;
        }
    };
    new_mi_objeto = function(props){
        var mi_objeto_instanciado = Object.create(mi_objeto);
        return mi_objeto_instanciado.init(props);
    };
})();

// Uso.
// Usamos propiedades por defecto.
obj1 = new_mi_objeto();
console.log(obj1.sumar());

// Usamos propiedades personalizadas.
props = {prop1 : 1234, prop2 : 8876};
obj2 = new_mi_objeto(props);
console.log(obj2.sumar());

Créditos