クラスを文字列に暗黙的に変換する : 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 で取得したのとほぼ同じテキストを取得できる様子です。
[ もどる ]