wikipedia
Сообщение от Livanderiaamarum
|
первые скобки возвращают то, что находится в них. функцианальное выражение.
|
если говорить по-русски, то скобки вычисляют то, что находится в них (функциональное
выражение - т.к. функция без имени. иначе бы была
декларация).
Сообщение от Livanderiaamarum
|
потом оператор вызова () применяется к тому что вернули скобки. иными словами ПРОСТО создается функция и просто вызывается. ни какого замыкания нет.
|
никакого замыкания нет, пока эта функция не инкапсулирует какую-нибудь функцию, которая будет использовать локальные переменные из родительской.
с замыканием :
(function () {
var myvar;// переменная родительской [[scope]]
window.func = function(){
alert(myvar) // использует переменную род. [[scope]]
}
})();
func(); // undefined.
без :
(function () {
window.func = function(){
var myvar; // переменная [[scope]] этой функции
alert(myvar) // использует переменную [[scope]] этой функции.
}
})();
func(); //undefined.
Сообщение от Livanderiaamarum
|
с контекстами
|
по-умолчанию this равен window. у этой функции кто-то изменил контекст (call,apply) или она является методом/конструктором объекта, созданного с помощью
new?
Сообщение от Livanderiaamarum
|
со стеками вызовов и.т.п.
|
функцию вызывает какая-то другая функция?
Livanderiaamarum, дружок, почитай про
JavaScript шаблоны. уверен, тебе понравится.