Всем привет!
Есть банальный пример:
var name = "Vaysa";
function f() {
alert(name);
}
setTimeout(function() {
var name = "Petya";
f();
}, 1000);
Понятно, что выводит имя Вася, потому что функция обращается к глобальной переменной.
Но вот я никак не могу понять, куда девается переменная name в функции в setTimeout ? И как вызвать функцию с этой переменной не передавая ее в функцию? Пробовать через call/apply/bind бессмысленно, т.к. функция не создает свой контекст. Через замыкание тоже ничего не получилось.
Кто-нибудь, может разъяснить ситуацию?