by @nyarla

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 さん

#FIXME