Javascript反射 - 泛型toString

时间:2011-12-26 20:41:53

标签: javascript reflection

现在,当我将自己的Object放入警报功能时,我看到了

  

[对象]

这是毫无意义的信息。有没有办法使用反射来获取这些字段的所有字段和值?

3 个答案:

答案 0 :(得分:4)

JSON.stringify通常是内置的,可以序列化传递给它的大多数对象。

也就是说,您应该只使用调试器或console.log而不是警报。

答案 1 :(得分:1)

这是其中之一。但最好使用console.log(),然后使用alert

function objectToString(o){
    var parse = function(_o){
        var a = [], t;
        for(var p in _o){
            if(_o.hasOwnProperty(p)){
                t = _o[p];
                if(t && typeof t == "object"){
                    a[a.length]= p + ":{ " + arguments.callee(t).join(", ") + "}";
                }
                else {
                    if(typeof t == "string"){
                        a[a.length] = [ p+ ": \"" + t.toString() + "\"" ];
                    }
                    else{
                        a[a.length] = [ p+ ": " + t.toString()];
                    }
                }
            }
        }
        return a;
    }
    return "{" + parse(o).join(", ") + "}";
}

答案 2 :(得分:0)

当然,也许像是

function alertObject(0){
    var str = "";
    for(i in o)
        str += i + " " + o[i] + "\n";
    alert(str);
}

编辑::注意这只是一个愚蠢的小例子。