Когда допустим такой вызов: 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, время: 15:57. |