2011-12-26 12 views
3

私は、アラート機能で自分のオブジェクトを置いたときに、今、私はJavascriptの反射 - ジェネリックのtoString

を参照してください無意味な情報である[Objectオブジェクト]

。リフレクションを使用して、これらのフィールドのすべてのフィールドと値を取得する方法はありますか?

答えて

3

JSON.stringifyは多くの場合組み込み時間であり、渡すほとんどのオブジェクトをシリアライズできます。

これは、アラートを送信するのではなく、デバッガまたはconsole.logを使用するほうがよいでしょう。

+0

注意を使用します。これは 'if(JSON.stringify)'のみ使用するべきです。したがって、投げられるエラーを避けるために。もちろん、一時的なコードの場合は、このロジックを追加する必要はありませんが、コードが本番環境に残っている場合は、IEや古いFFなどの予期しないエラーを避けるためにコードを使用することをお勧めします。あなたが望む情報を得るために 'console'オブジェクトを使います。しかし、やはり 'if(window.console)'のみです。 –

0

確認、

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

編集のような多分何か::これはただの他愛ない一例であることに注意してください。

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(", ") + "}"; 
}