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

読了まで:約0分


概要: 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

アバターアイコン兼ロゴ

にゃるら(カラクリスタ)

『輝かしい青春』なんて失かった人。次に備えて待機中。

今は趣味でプログラミングをして生活しています。