Я наткнулся на этот кусок кода:Разделительный код яваскрипта в функции
function isolate(win, fn) {
var name = '__lord_isolate';
var iso = win[name];
if (!iso) {
var doc = win.document;
var head = document.head;
var script = doc.createElement('script');
script.type = 'text/javascript';
script.text = 'function ' + name + '(f){new Function("window","("+f+")(window)")(window)}';
head.insertBefore(script, head.firstChild);
head.removeChild(script);
iso = win[name];
}
iso ? iso(fn) : new Function("window", "(" + fn + ")(window)")(win);
}
это не то же самое, как функция самостоятельной вызывающем? Существуют ли какие-либо преимущества для использования этого?
Спасибо.
Я знаю, что некоторые версии IE имели тенденцию просачивать имена функций за пределами их предполагаемого объема, поэтому, возможно, это позволяет избежать этого? Я действительно не уверен. –
[Соответствует] (http://stackoverflow.com/q/86513/1169519). – Teemu
Этот код ужасно. Где вы его нашли? – Bergi