замыкания, почему функция не видит переменные
Скажите , пожалуйста почему не работает этот код?
И как его правильно написать, чтоб работал? 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, время: 12:49. |