我碰到这个代码,不明白为什么代码块中的代码被封装在像自动执行函数一样的parens中。块内的代码被包装在parens里面。为什么?
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被包裹在parens中。
...除非不需要在非窗口'b'的上下文中调用'eval'。 – VisioN 2013-03-11 15:15:42
也许,我没有真正看过代码应该做什么。 – 2013-03-11 15:16:31
从某种程度上看,来自jQuery
VisioN
2013-03-11 15:24:23