FireBug で、例えば


console.debug(new Date());

と指定したときに出てくる文字は、下のような感じになると思うのですが、

Date {Sun Jan 29 2012 13:13:04 GMT+0900}

このときに、{ ... } の間に出てくる文字は何なのでしょう。
自作のクラスで表示したい場合、どの関数をオーバーライドすれば良いでしょうか?

以下ののようにオーバーライドしただけでは

prototype.SomeClass.toString = function() { return "hello" }

表示結果は

HELLO /undefined/

のように出てしまいます。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/01/30 01:46:43
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.1

回答回数4969ベストアンサー獲得回数2152

ポイント200pt

toString() が返す値でしょう。

オーバーライドするなら、こうです。


Date.prototype.toString = function() { return "hello, I am Date Class."; }

他13件のコメントを見る
id:tenori_lion

> 皆様
す、すごい。。ありがとうございます。。

2012/01/30 01:46:12
id:a-kuma3

なんか、回答する側だけで盛り上がってしまい、すみませんでした。

軽くまとめると、以下のような感じかと。

  • console.log などの出力形式は、渡すオブジェクトの種類によって実装が違う
  • 自前のオブジェクトなどは、オブジェクトのプロパティを列挙するような表示になる
  • 自分の好みに合わせて出力を変えたいのであれば、Firebug の実装の一部をいじる必要がありそう
2012/01/30 01:58:39
  • id:tenori_lion
    tenori_lion 2012/01/29 13:36:14
    ちなみに、toSource でもないです。
  • id:a-kuma3
    楽しい質問を堪能させていただきました♪ >tenori_lion さん
    にぎやかしのお二方(失礼)にも、ポイントは送っておきました。

    他人のソースを真剣に読んだのは、久しぶりです。
    code.google やら、sourceforge やら、github やら、ソースが手軽に読めるなんて、
    良い時代になりました。

    仕事そっちのけでソース読んでたんで、明日用の仕事がまだ終わってません(仕事、つまんないし)。
    五時半起きだってのに (ヒー

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません