Monday, November 29, 2010

Javascript super object for (data entity and more )

Энэ объектыг бичиж орууллаа. Учир нь элдэв өгөгдөлийг client талд утга хадгалах javascript object шаардлагатай болдог дутагдлыг төгс нөхнө. Ашиглаад үзээрэй.
Чадвар нь: JSON, JQuery, Array, Attr авч болон өгөх


var _objects = {
    interface0 : {
        data : new Array(),
        getString : function() { return JSON.stringify(this); },
        extend : function(args) {
            var obj = (typeof args == 'string') ? eval('(' + args + ')') : args;
            $.extend(this, obj, true);
            return this;
        },
        parse : function(args) {
            var i = args.toString().indexOf('{');
            if (i == -1) i = args.toString().indexOf('}');
            if (i == -1) { return { data : args.toString() }; }
            return (typeof args == 'string') ? eval('(' + args + ')') : args;
        }
    },
    create : function(){
        var o = { };
        if (arguments.length == 1) {
            try {
                //Long l = Long.parseLong(arguments[0]);
                o = $.extend({}, { id : arguments[0] }, true);
            } catch (ex) {
                o = $.extend({}, { id : 0 }, true);
                var obj = (typeof arguments[0]=='string')?eval('('+arguments[0]+')'):arguments[0];
                o = $.extend({}, obj, true);
            }
        } else if (arguments.length == 2) {
            var obj = (typeof arguments[1]=='string')?eval('('+arguments[1]+')'):arguments[1];
            o = $.extend({}, obj, true);
            o = $.extend(o, { id : arguments[0] }, true);
        } else
            o = $.extend({}, { id : 0 }, true);
        o = $.extend(o, this.interface0, true);
        o.data = new Array();
        //usage::
        //var n = new MyEntity(10);
        //n.hi = "hi boroo";
        //n.extend({name:"boroo"});
        //var obj = new MyEntity(20, n.getString());
        //var n = new MyEntity(10, "{name:'baatar'}");
        //n.data["a"]="b";
        //alert( n.data["a"] );
        return o;
    }
//var a = _objects.create(22);
//var b = _objects.create(33);
//b.hi = "welcome, boroo";
//b.id="1";
//a.extend(b.getString());
//alert(a.data.length);
};

No comments: