クラスを文字列に暗黙的に変換する : JavaScript プログラミング

PROGRAM


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

JavaScript でクラスを作成したときに、そのインスタンスを暗黙的に文字列として扱えるようにするには、クラスに toString メソッドを実装します。

たとえば、次のような実装になります。

function CTest()

{

this.toString = function()

{

return 'test message';

}

}

こうすることで、例えばこのクラスのインスタンスを作成して alert でその内容を表示したい場合は、次のようにすることができます。

var test = new CTest();

 

alert(test);

JavaScript の alert 関数は、引数で指定された文字列をダイアログで表示するものです。

ここに CTest クラスのインスタンス変数 test を渡すことで、表示時に CTest インスタンスが暗黙的に文字列に変換されます。

このとき、上記のように toString メソッドを実装している場合はそれが呼び出され、そのメソッドが返す文字列が使われるため、alert 関数で表示される文字列は、上記の例では "test message" になりました。

toString メソッドを実装していない場合には、"[object Object]" などといった文字列が表示されます。

 

ちなみに、JavaScript の例外処理で使用する Error オブジェクトも toString メソッドを備えているようで、catch(e) などで受け取った変数 e をそのまま文字列として使用すれば、e.message で取得したのとほぼ同じテキストを取得できる様子です。


[ もどる ]