对象转字符串

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(/
|
|	/g, function(a) {
                return ("
"==a)?"\n":("
"==a)?"\r":("	"==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"}]}]"

原文地址:https://www.cnblogs.com/longze/p/3142987.html