en.javascript.info/1-js/5-functions-closures/5-closures-usage/2-stringbuffer/task.md
Ilya Kantor 87bf53d076 update
2014-11-16 01:40:20 +03:00

1.8 KiB
Raw Blame History

Функция - строковый буфер

[importance 5]

В некоторых языках программирования существует объект "строковый буфер", который аккумулирует внутри себя значения. Его функционал состоит из двух возможностей:

  1. Добавить значение в буфер.
  2. Получить текущее содержимое.

Задача -- реализовать строковый буфер на функциях в JavaScript, со следующим синтаксисом:

  • Создание объекта: `var buffer = makeBuffer();`.
  • Вызов `makeBuffer` должен возвращать такую функцию `buffer`, которая при вызове `buffer(value)` добавляет значение в некоторое внутреннее хранилище, а при вызове без аргументов `buffer()` -- возвращает его.

Вот пример работы:

function makeBuffer() { /* ваш код */ }

var buffer = makeBuffer();

// добавить значения к буферу
buffer('Замыкания'); 
buffer(' Использовать'); 
buffer(' Нужно!'); 

// получить текущее значение
alert( buffer() ); // Замыкания Использовать Нужно!

Буфер должен преобразовывать все данные к строковому типу:

var buffer = makeBuffer();
buffer(0); buffer(1); buffer(0);

alert( buffer() ); // '010'

Решение не должно использовать глобальные переменные.