Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   выполнить функцию в другом контексте (https://javascript.ru/forum/misc/16648-vypolnit-funkciyu-v-drugom-kontekste.html)

luethus 16.04.2011 11:08

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

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

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


Как выполнить функцию, которая передается в a(), в контексте window? т.е. в данном случае мне нужно, чтобы появилась window.b = 1.

Sweet 16.04.2011 11:57

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

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

alert(window.b);

luethus 16.04.2011 12:53

Sweet, спасибо :)


Часовой пояс GMT +3, время: 23:37.