Почему так работает, а по-другому нет?
Привет. Тренируюсь, нужно было написать счетчик. Навалялось такое
var catCounter = function () {
var counter = 0;
return function () {
return counter++;
}
};
alert(catCounter());
Такой вариант не сработал.
function catCounter() {
var counter = 0;
return function() {
return counter++;
};
}
var counter = catCounter();
alert(counter());
А вот этот - отлично. Почему так? |
ogurchik,
потому что catCounter возвращает функцию, которая генерирует число а не число.
var catCounter = function () {
var counter = 0;
return function () {
return counter++;
}
};
alert(catCounter()());
В первом варианте вы получили функцию и пытаетесь её показать алертом. Во втором вы получили функцию, потом у неё получили число, которое показываете алертом. |
tsigel,
все, понятно, спасибо! совершенно вылетела из головы это особенность |
| Часовой пояс GMT +3, время: 13:07. |