对象转字符串

var toString = function(obj){
    var self = this;
    switch(typeof(obj)){ 
        case 'object':
            var ret = []; 
            if (obj instanceof Array){ 
                for (var i = 0, len = obj.length; i < len; i++){ 
                    ret.push(arguments.callee(obj[i])); 
                } 
                return '[' + ret.join(',') + ']'; 
            } 
            else if (obj instanceof RegExp){ 
                return obj.toString(); 
            } 
            else{ 
                for (var a in obj){ 
                    ret.push(a + ':' + arguments.callee(obj[a])); 
                } 
                return '{' + ret.join(',') + '}'; 
            } 
        case 'function':
            return 'function() {}'; 
        case 'number':
            return obj.toString(); 
        case 'string':
            return "\"" + obj.replace(/(\\|\")/g, "\\$1").replace(/\n|\r|\t/g, function(a) {
                return ("\n"==a)?"\\n":("\r"==a)?"\\r":("\t"==a)?"\\t":"";
            }) + "\""; 
        case 'boolean':
            return obj.toString(); 
        default:
            return obj.toString(); 
    };
}

toString([{we:true,df:['sd','地方',{name:"ja'ck"}]}]);

"[{we:true,df:["sd","地方",{name:"ja'ck"}]}]"

posted @ 2013-06-18 20:26  龙则  阅读(440)  评论(0编辑  收藏  举报