Отражение JavaScript - общий toString - PullRequest
4 голосов
/ 27 декабря 2011

Теперь, когда я помещаю свой собственный Объект в функцию оповещения, я вижу

[Объектный объект]

, который является бессмысленной информацией.Есть ли способ использовать отражение, чтобы получить все поля и значения этих полей?

Ответы [ 3 ]

4 голосов
/ 27 декабря 2011

JSON.stringify часто встроен и может сериализовать большинство объектов, которые вы ему передаете.

Тем не менее, вы, вероятно, должны просто использовать отладчик или console.log вместо оповещений.

1 голос
/ 27 декабря 2011

Вот один из многих.Но лучше использовать 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(", ") + "}";
}
0 голосов
/ 27 декабря 2011

конечно, может быть что-то вроде

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

Edit :: Обратите внимание, что это просто глупый маленький пример.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...