Показать сообщение отдельно
  #1 (permalink)  
Старый 28.09.2012, 15:01
Аспирант
Отправить личное сообщение для xfreewindx Посмотреть профиль Найти все сообщения от xfreewindx
 
Регистрация: 19.08.2012
Сообщений: 33

пример с замыканием
Здравствуйте!
Вкуриваю пример про строковый буфер.
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('значение') не работает.
Ответить с цитированием