私はこのコードに出くわしましたが、ブロック内のコードが自動実行関数のように親にラップされている理由がわかりません。
function foo(a,b) {
var b = b || window,
a = a.replace(/^\s*<!(?:\[CDATA\[|\-\-)/, "/*$0*/");
if (a && /\S/.test(a)) {
(b.execScript || function (a) {
b["eval"].call(b, a)
})(a);
}
}
最初のパラメーターは、スクリプトタグからのテキストです。私が得られない唯一の部分は、スクリプトevalが括弧で囲まれている理由です。