JavaScript でオブジェクトを作成したときに、そのインスタンスを暗黙的に文字列として扱えるようにするには、クラスに toString メソッドを組み込む。
たとえば、次のような実装になる。
function exec(){ var test = new CTest(); result.innerHTML = test; } function CTest(){ this.toString = function(){ return '96代 総理大臣は安部晋三です'; } }
JavaScript の innerHTMLは、指定された文字列をHTMLにするものである(上記の例ではtestの内容をHTMLにする)。 ここに CTest クラスのインスタンス変数 test を渡すことで、表示時に CTest インスタンスが暗黙的に文字列に変換される。 このとき、上記のように toString メソッドを実装している場合はそれが呼び出され、そのメソッドが返す文字列が使われるため、HTML化される文字列は、上記の例では “96代 総理大臣は安部晋三です” になる。
toString メソッドを実装していない場合には、”[object Object]” などといった文字列となる。
サンプル