Когда допустим такой вызов: Funct()();
function Funct() { var a = 2; var func = function() { alert(a); }; return func; } Funct()(); Почему вызов просто с Funct(); (без ещё одних скобок) не работает? |
lisawow,
наверное потому что вы возвращаете ф-ию |
Этот метод возвращает другой метод. Если вызовете просто Funct(), то все сработает, но вы получите, не то, что, наверняка ожидали.
function Funct() { var a = 2; var func = function() { alert(a); }; return func; } Funct()(); //Аналогично var method = Funct(); method(); |
Ой-да...тупанул что-то :-E
Если вы напишете просто: Funct(), то все будет работать...но как уже сказали не так как вы хотите. Тогда вам вернется лишь значение самой переменной(но не ф-ия). <script> function Funct() { var a = 2; var func = function() { alert(a); }; return func; } alert(Funct()); alert(typeof Funct()); //хотя это и ф-ия... </script> Когда вы пишете Funct()(), это как func() - то есть вызывается ваш алерт... |
Спасибо.
Разобралась |
Часовой пояс GMT +3, время: 04:21. |