概要: Javascript のeval
をオブジェクト指向にする。
Javascript でeval
使うときってたいてい文字列を評価する場合が多いので、
String オブジェクトのメソッドにしてみた。
String.prototype.eval = function () {
return eval( '' + this );
}
コードの扱いはパブリック・ドメインで。
とりあえず、Windows の
- Firefox 2.0
- Opera 9.2
- 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