Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 20.12.2011, 00:23
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Livanderiaamarum
//а если я тут сделаю вызов??
alert()//например
//функция алерт в каком контексте будет выполняться? в глобальном.
Я думаю, в контексте анонимной функции.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #12 (permalink)  
Старый 20.12.2011, 00:25
Аватар для Livanderiaamarum
Профессор
Отправить личное сообщение для Livanderiaamarum Посмотреть профиль Найти все сообщения от Livanderiaamarum
 
Регистрация: 10.12.2011
Сообщений: 290

Сразу же - это сразу же, она не добавляется в конец стека, а просто вызывается.
----------------------
как такое возможно? если мы внутри неё создадим вызов, а в них еще 20, создастся второй стек где будут хранится вызовы из анонимной? нет, как тогда хранить то если мы что-то вызовим внутри анонимной. ГДЕ хранить если не в стеке вызовов.
Ответить с цитированием
  #13 (permalink)  
Старый 20.12.2011, 00:26
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Livanderiaamarum Посмотреть сообщение
если наша анонимная вызывает что-то, а то в свою очередь тоже вызывает что-то, то СТЕК ВЫЗОВОВ НЕ ОСТАЕТСЯ НЕИЗМЕННЫМ!!!
??? стек вызовов показывает, откуда была вызвана функция. длина соотв. меняется.

Сообщение от Livanderiaamarum Посмотреть сообщение
а мне сказали что остается. как тогда компьютер узнает что нужно притормозить,
похоже, ты хотел сказать, "как тогда реализуются замыкания?".

Сообщение от Livanderiaamarum Посмотреть сообщение
и как узнает от куда потом нужно продолжить код если я сделаю вызовы внутри анонимной то где будет хранится список этих вызовов и.т.п. если он не создается то как компьютер будет запоминать что что вызвали и куда что возвращать?
доказывай "от противного", если не получается доказывать прямым ходом.
Ответить с цитированием
  #14 (permalink)  
Старый 20.12.2011, 00:29
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Livanderiaamarum Посмотреть сообщение
Сразу же - это сразу же, она не добавляется в конец стека, а просто вызывается.
почему же? она доавится в стек.
и она не просто вызывается. она вызывается, когда исполнится блок кода, который исполняется в текущий момент (псевдоасинхронные ф-и - таймауты, event handlers)
Ответить с цитированием
  #15 (permalink)  
Старый 20.12.2011, 00:32
Аватар для Livanderiaamarum
Профессор
Отправить личное сообщение для Livanderiaamarum Посмотреть профиль Найти все сообщения от Livanderiaamarum
 
Регистрация: 10.12.2011
Сообщений: 290

Сообщение от melky Посмотреть сообщение
почему же? она доавится в стек.
и она не просто вызывается. она вызывается, когда исполнится блок кода, который исполняется в текущий момент (псевдоасинхронные ф-и - таймауты, event handlers)
правильно а вот нотка говорит что нет
Ответить с цитированием
  #16 (permalink)  
Старый 20.12.2011, 00:37
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 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);
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #17 (permalink)  
Старый 20.12.2011, 00:38
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Я немного не в тему, прошу простить. Интернет отрубился как раз в тот момент, когда я нажал кнопку "Отправить"...
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #18 (permalink)  
Старый 20.12.2011, 00:40
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от Livanderiaamarum
правильно а вот нотка говорит что нет
У вас удивительный талант понимать людей.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #19 (permalink)  
Старый 20.12.2011, 00:44
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от trikadin
nerv_, я стараюсь писать без ошибок, поэтому мои слова нужно понимать так, как я их написал.
trikadin, тогда получается с Ваших слов, что тут есть замыкание
(function() {
// код
})();

Хотя чего спорить, все зависит от
//код
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #20 (permalink)  
Старый 20.12.2011, 00:46
Аватар для Livanderiaamarum
Профессор
Отправить личное сообщение для Livanderiaamarum Посмотреть профиль Найти все сообщения от Livanderiaamarum
 
Регистрация: 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 ? это как бы восходящее кверху стека замыкание?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
wtf javascript vflash Оффтопик 53 14.11.2011 01:44
Что означает такой вызов? ksa jQuery 0 21.12.2010 13:45
DST что это? zzz Общие вопросы Javascript 3 11.08.2009 19:38
Сторонние библиотеки - быть или не быть? IIIEPJIOK Оффтопик 64 21.03.2009 19:39
Что означает конструкция ? ivanmara Общие вопросы Javascript 55 07.01.2009 02:54