Здравствуйте!
Вкуриваю пример про строковый буфер.
function makeBuffer() {
var text = '';
return function(piece) {
if (piece === undefined) {
return text;
}
text += piece;
};
};
var buffer = makeBuffer();
// добавить значения к буферу
buffer('Замыкания');
buffer(' Использовать');
buffer(' Нужно!');
alert( buffer() ); // 'Замыкания Использовать Нужно!'
var buffer2 = makeBuffer();
buffer2(0); buffer2(1); buffer2(0);
alert( buffer2() ); // '010'
Поясните два момента
1. почему мы присваиваем var buffer = makeBuffer();
почему нельзя просто вызывать makeBuffer('параметр'), не используя переменную buffer.
2. как передается параметр в функцию?
функция объявлена без параметра function makeBuffer() в скобках пусто,
а вызов идет с параметром buffer('Замыкания');
Пробовал вызвать makeBuffer('значение') не работает.