Javascript.RU

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

выполнить функцию в другом контексте
Здравствуйте!
Есть код, примерно такой:

function a(f) {
 f(); // вот оно
}

a(function() {
 var b = 1;
});


Как выполнить функцию, которая передается в a(), в контексте window? т.е. в данном случае мне нужно, чтобы появилась window.b = 1.
Ответить с цитированием
  #2 (permalink)  
Старый 16.04.2011, 11:57
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Убери var и все А если серьезно, то контексты в функции передаются через .call или .apply.
function a(f, ctx) {
 f.call(ctx);
}

a(function() {
 this.b = 1;
}, window); // Если ничего не передавать, контект будет window

alert(window.b);
Ответить с цитированием
  #3 (permalink)  
Старый 16.04.2011, 12:53
Новичок на форуме
Отправить личное сообщение для luethus Посмотреть профиль Найти все сообщения от luethus
 
Регистрация: 12.11.2010
Сообщений: 7

Sweet, спасибо
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача в функцию переменного количества аргументов Эдди Элементы интерфейса 35 09.11.2018 15:25
Как получить указатель на элемент вызвавший функцию pelayo Общие вопросы Javascript 9 29.06.2010 23:32
Передать в функцию указание на элемент, из которой она вызвана AndreyLL Events/DOM/Window 3 30.11.2009 09:55
Ссылка на функцию в другом файле Sergey_New Events/DOM/Window 11 03.08.2009 08:16
Как выполнить функцию с задержкой? AlexMak Events/DOM/Window 6 11.12.2008 11:53