カラクリスタ

『輝かしい青春』なんて失かったヒトのブログ

Javascriptのevalをオブジェクト指向に

概要: Javascriptのevalをオブジェクト指向にする。


Javascriptでeval使うときってたいてい文字列を評価する場合が多いので、 Stringオブジェクトのメソッドにしてみた。

String.prototype.eval = function () {
    return eval( '' + this );
}

コードの扱いはパブリック・ドメインで。

とりあえず、Windowsの

  1. Firefox 2.0
  2. Opera 9.2
  3. Internet Explorer 6

で動くことを確認。

evalのところでthisと空の文字列と結合しているのがポイント。 というか結合せずにeval( this )と書くと何故か動きません。何でなのかは不明。

これで、

'alert("hoge")'.eval()

とか書ける。

prototype拡張って楽しい。

追記:2007-02-08T10:30:00+09:00

コメント欄でnanto_viさんに教えてもらったんですが、evalは引数が文字列でない場合、 引数をそのまま返すので、そのせいでeval(this)が動かないようです。

詳しくはECMAScriptの仕様書の日本語訳を参照。

情報ありがとうございます。 > nanto_viさん