Почему так работает, а по-другому нет?
Привет. Тренируюсь, нужно было написать счетчик. Навалялось такое
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, время: 17:20. |