замыкания, почему функция не видит переменные
Скажите , пожалуйста почему не работает этот код?
И как его правильно написать, чтоб работал?
function f1(){
var a = 5,
b = 6;
f2();// не видит a, b
}
function f2(){
alert(a + b);
}
f1();
почему переменные a и b не беруться из замыкания? |
Цитата:
function f1(){
var a = 5,
b = 6;
f2(a,b);// не видит a, b
}
function f2(a,b){
alert(a + b);
}
f1();
|
а можно как-то обратиться к переменным a, b из f2, не передавая их в f2 как аргументы?
|
Цитата:
var a, b;
function f1() {
a = 5; b = 6;
f2();
}
function f2() {
alert(a + b);
}
f1();
А из замыкания они бы брались если бы было что-нибудь вроде этого:
function f1() {
var a = 5, b = 6;
function f2() {
alert(a + b);
}
f2();
}
f1();
|
Ты неправильно понял суть работы замыканий. Влияет не то, где функция вызвана, а то, где она объявлена.
|
Большое спасибо! Теперь всё понял.
|
| Часовой пояс GMT +3, время: 15:21. |