|
20.12.2011, 00:49
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Сообщение от Livanderiaamarum
|
кажется каждая функция расширяет область видимости... внутрь стека? это как бы восходящее кверху стека замыкание?
|
Я сейчас дзен поймаю. Ты что написал вообще?
У каждой ф-ции есть своя область видимости. Любая переменная, объявленная в ней с ключевым словом var, будет локальной и недоступной для внешних ф-ций. Поиск переменной происходит сначала в локальной области, потом - в локальной области внешней ф-ции (если есть) и т.д., пока не дойдём до global object. Если и в global object нету - то Referrence error.
Что тут не понятного?
|
|
20.12.2011, 00:49
|
|
Профессор
|
|
Регистрация: 10.12.2011
Сообщений: 290
|
|
Сообщение от nerv_
|
trikadin, тогда получается с Ваших слов, что тут есть замыкание
(function() {
// код
})();
Хотя чего спорить, все зависит от
//код
|
скажу вам одну тайну, профессианалы вроде меня знают это, щас серьезно, на заметку.
ВСЕ функции в js ВСЕГДА создают замыкания))
|
|
20.12.2011, 00:51
|
|
Профессор
|
|
Регистрация: 10.12.2011
Сообщений: 290
|
|
Сообщение от trikadin
|
Я сейчас дзен поймаю. Ты что написал вообще?
У каждой ф-ции есть своя область видимости. Любая переменная, объявленная в ней с ключевым словом var, будет локальной и недоступной для внешних ф-ций. Поиск переменной происходит сначала в локальной области, потом - в локальной области внешней ф-ции (если есть) и т.д., пока не дойдём до global object. Если и в global object нету - то Referrence error.
Что тут не понятного?
|
это тебе что-то непонятно)) мне все понятно) только я не понял вообще что ты написал, вернее я не понял как это относится к твоему коду и вообще к теме разговора. если ты не знаешь то замыкания это когда скоп копируется. есть низсходящие замыкания, есть восходящие. в данном случае восходящее. скоп расширен вверх. что, незнакомо)? А вроде Резинга читают тут все...
Последний раз редактировалось Livanderiaamarum, 20.12.2011 в 00:54.
|
|
20.12.2011, 00:52
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от Livanderiaamarum
|
кажется каждая функция расширяет область видимости... вверх стека... вплоть до variable_local ? это как бы восходящее кверху стека замыкание?
|
нет замыкание - скоп оборачивающей анонимной функции. и никуда оно не восходит. но в стеке будет 3 функции.
Последний раз редактировалось melky, 20.12.2011 в 00:54.
|
|
20.12.2011, 00:53
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Сообщение от Livanderiaamarum
|
это тебе что-то непонятно)) мне все понятно)
|
А чего спрашиваешь тогда?
|
|
20.12.2011, 00:55
|
|
Профессор
|
|
Регистрация: 10.12.2011
Сообщений: 290
|
|
Сообщение от trikadin
|
А чего спрашиваешь тогда?
|
просто ^__^ скучно же сидеть просто так) топик интересный создал вот)
|
|
20.12.2011, 00:57
|
|
Профессор
|
|
Регистрация: 10.12.2011
Сообщений: 290
|
|
Сообщение от melky
|
нет замыкание - скоп оборачивающей анонимной функции. и никуда оно не восходит. но в стеке будет 3 функции.
|
восходит это имеется ввиду расширяется область снизу стека или сверху)
в данном случае расширенна вверх стека), называется восходящее)
|
|
20.12.2011, 00:59
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от Livanderiaamarum
|
так, я как не странно почти понял что произошло.
|
А я не понял. Можно специально для таких, как я?)
Это замыкание в замыкании? Вроде нет. Судя по всему функция обертка расширяет область видимости.
Я говорю вот об этом
var func_global; // предпочитаю объявлять заранее
(function() {
var variable_local = 3;
var func_local = function() { alert(variable_local); };
func_global = function() { func_local(); }; // здесь
})();
func_global();
alert(variable_local);
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Последний раз редактировалось nerv_, 20.12.2011 в 01:10.
|
|
20.12.2011, 01:00
|
|
Профессор
|
|
Регистрация: 10.12.2011
Сообщений: 290
|
|
Сообщение от nerv_
|
А я не понял. Можно специально для таких, как я?)
Это замыкание в замыкании?
|
да)
|
|
20.12.2011, 01:11
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от Livanderiaamarum
|
да)
|
нет.
variable_local берётся из сохранённой области видимости корневой функции (самая первая - т.е. анонимная оборачивалка).
т.к. возможно я изрекаюсь слишком заумно, поэтому я кидаю картинку.
PS как мне нравится эта картинка троллфейса.
|
|
|
|