Object.eval()

eval()は文字列引数code中のJavaScriptコードを実行します。このメソッドは、eval()グローバル関数と同様の振る舞いをしますが、グローバルにコードを評価するのではなく、objectのスコープで評価します。

JavaScript - Object.eval()

へーへーへー。Objectにもevalメソッドがあるんだね。しかもスコープがObjectになるとは。

// グローバル関数のeval()
eval('var hoge = "hogehoge";');

ってやっても、後からhogeを参照できないけど、

// Object.eval()
window.eval('var hoge = "hogehgoe";');

は、グローバル変数入りしてくれる事には何となく気付いていたけど、こういう事だとは知らなかった。

var str = document.getElementById('input');
window.opener.eval( str );

とかやると、親ウインドウをいろいろ操作できそう。スコープを変えられると、いろいろ悪さが出来そうで怖くもあるな。やっぱり、eval is evil

というか、JavaScriptのサイト、やっぱりO'REILLYのJavaScript本の付録CDの内容じゃないか。公開して大丈夫なのか...?