我碰到這個代碼,不明白爲什麼代碼塊中的代碼被封裝在像自動執行函數一樣的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