Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.08.2013, 09:18
Новичок на форуме
Отправить личное сообщение для naitek Посмотреть профиль Найти все сообщения от naitek
 
Регистрация: 30.08.2013
Сообщений: 1

Контекст работы функции.
Нашел вот такой интересный код.
var i = 0;

function main(callback)
{
    var i = 10;
    callback();
}

main(function ()
{
    alert(i);
});


Не могу понять, почему выводится 0. Ведь callback который мы передаем main вызывается в контексте main, значение i в этом контексте равно 10, почему значение i берется из глобального контекста? Второй день ломаю голову не могу понять.

Последний раз редактировалось naitek, 30.08.2013 в 09:25.
Ответить с цитированием
  #2 (permalink)  
Старый 30.08.2013, 09:27
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Контекст функции берется не от того где она вызывается, а от того где она объявляется.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ожидание работы асинхронной функции TITnet Общие вопросы Javascript 0 04.06.2013 23:34
В callback функции теряется контекст. Как это обойти? xintrea AJAX и COMET 4 02.06.2013 11:40
остановка работы функции, вне её тела Tek Общие вопросы Javascript 6 06.11.2012 01:05
Функции для работы с регулярными выражениями Joshka Общие вопросы Javascript 5 21.06.2011 00:00
Специфические функции и свойства различных браузеров onejsquestion Javascript под браузер 3 28.06.2010 10:54