クラスを文字列に暗黙的に変換する

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]” などといった文字列となる。

サンプル