Показать сообщение отдельно
  #2 (permalink)  
Старый 05.04.2014, 14:21
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от sneggg
Что дает приведенный пример
(function() {
 
	var privateVariable = 1;

	window.foo = function() {
		typeof privateVariable //→ "number"
	};

})();

typeof privateVariable //→ "undefined"
Такое замыкание используется, чтобы изолировать приватные переменные и функции.
Подробнее про замыкания здесь: http://dmitrysoshnikov.com/ecmascrip...er-6-closures/


Сообщение от sneggg
Что имеет в виду автор под "ОТКРЫТОЕ замыкание"? Надо полагать, что бывают и закрытые замыкания
Нет такого понятия

Сообщение от sneggg
Безымянные функции являются отложенными выражениями
Различают 3 вида создания функций:
Function declaration
function funcName() {}


Function expression
var func = function () {}
//или
(function () {})
//или
{method: function () {}}
//или любое другое выражение, где создается функция


Named function expression
var func = function funcName() {};
//или
(function funcName() {})
//или
{method: function funcName() {}}
//или любое другое выражение, где создается именованная функция

Function declaration создается сразу при входе в контекст, независимо от того, где в коде она располагается
(function () {

	typeof funcName //→ "function";

	function funcName() {}

}());
остальные создаются по мере исполнения
(function () {

	typeof func //→ "undefined";

	var func = function () {}

}());


Подробнее здесь: http://dmitrysoshnikov.com/ecmascrip...r-5-functions/

После прочтения статей, остальные вопросы должны отпасть.


Ну и вообще это основы языка, рекомендую все статьи с того сайта прочесть:
http://dmitrysoshnikov.com/ecmascrip...tion-contexts/
http://dmitrysoshnikov.com/ecmascrip...riable-object/
http://dmitrysoshnikov.com/ecmascrip...hapter-3-this/
http://dmitrysoshnikov.com/ecmascrip...4-scope-chain/
http://dmitrysoshnikov.com/ecmascrip...r-5-functions/
http://dmitrysoshnikov.com/ecmascrip...er-6-closures/
http://dmitrysoshnikov.com/ecmascrip...eneral-theory/
http://dmitrysoshnikov.com/ecmascrip...mplementation/
http://dmitrysoshnikov.com/ecmascrip...tion-strategy/

ну или читайте учебник на этом сайте http://learn.javascript.ru/

Последний раз редактировалось Octane, 05.04.2014 в 14:24.
Ответить с цитированием