20.12.2011, 00:23
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от Livanderiaamarum
|
//а если я тут сделаю вызов??
alert()//например
//функция алерт в каком контексте будет выполняться? в глобальном.
|
Я думаю, в контексте анонимной функции.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
20.12.2011, 00:25
|
|
Профессор
|
|
Регистрация: 10.12.2011
Сообщений: 290
|
|
Сразу же - это сразу же, она не добавляется в конец стека, а просто вызывается.
----------------------
как такое возможно? если мы внутри неё создадим вызов, а в них еще 20, создастся второй стек где будут хранится вызовы из анонимной? нет, как тогда хранить то если мы что-то вызовим внутри анонимной. ГДЕ хранить если не в стеке вызовов.
|
|
20.12.2011, 00:26
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от Livanderiaamarum
|
если наша анонимная вызывает что-то, а то в свою очередь тоже вызывает что-то, то СТЕК ВЫЗОВОВ НЕ ОСТАЕТСЯ НЕИЗМЕННЫМ!!!
|
??? стек вызовов показывает, откуда была вызвана функция. длина соотв. меняется.
Сообщение от Livanderiaamarum
|
а мне сказали что остается. как тогда компьютер узнает что нужно притормозить,
|
похоже, ты хотел сказать, "как тогда реализуются замыкания?".
Сообщение от Livanderiaamarum
|
и как узнает от куда потом нужно продолжить код если я сделаю вызовы внутри анонимной то где будет хранится список этих вызовов и.т.п. если он не создается то как компьютер будет запоминать что что вызвали и куда что возвращать?
|
доказывай "от противного", если не получается доказывать прямым ходом.
|
|
20.12.2011, 00:29
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от Livanderiaamarum
|
Сразу же - это сразу же, она не добавляется в конец стека, а просто вызывается.
|
почему же? она доавится в стек.
и она не просто вызывается. она вызывается, когда исполнится блок кода, который исполняется в текущий момент (псевдоасинхронные ф-и - таймауты, event handlers)
|
|
20.12.2011, 00:32
|
|
Профессор
|
|
Регистрация: 10.12.2011
Сообщений: 290
|
|
Сообщение от melky
|
почему же? она доавится в стек.
и она не просто вызывается. она вызывается, когда исполнится блок кода, который исполняется в текущий момент (псевдоасинхронные ф-и - таймауты, event handlers)
|
правильно а вот нотка говорит что нет
|
|
20.12.2011, 00:37
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Сообщение от melky
|
никакого замыкания нет, пока эта функция не инкапсулирует какую-нибудь функцию, которая будет использовать локальные переменные из родительской.
|
Ну, обычно там есть ф-ции)
Сообщение от nerv_
|
Есть замыкание? Или это следует читать как "так и есть"?)
|
nerv_, я стараюсь писать без ошибок, поэтому мои слова нужно понимать так, как я их написал.
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);
|
|
20.12.2011, 00:38
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Я немного не в тему, прошу простить. Интернет отрубился как раз в тот момент, когда я нажал кнопку "Отправить"...
|
|
20.12.2011, 00:40
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Сообщение от Livanderiaamarum
|
правильно а вот нотка говорит что нет
|
У вас удивительный талант понимать людей.
|
|
20.12.2011, 00:44
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Сообщение от trikadin
|
nerv_, я стараюсь писать без ошибок, поэтому мои слова нужно понимать так, как я их написал.
|
trikadin, тогда получается с Ваших слов, что тут есть замыкание
(function() {
// код
})();
Хотя чего спорить, все зависит от
//код
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
20.12.2011, 00:46
|
|
Профессор
|
|
Регистрация: 10.12.2011
Сообщений: 290
|
|
Сообщение от trikadin
|
Ну, обычно там есть ф-ции)
nerv_, я стараюсь писать без ошибок, поэтому мои слова нужно понимать так, как я их написал.
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);
|
хера се)) круто же) девушке завтра это покажу) она шарит у меня более менее) ща спит уже)) не думал что так можно.. я серьезно
так, я как не странно почти понял что произошло.
кажется каждая функция расширяет область видимости... вверх стека... вплоть до variable_local ? это как бы восходящее кверху стека замыкание?
|
|
|
|