en.javascript.info/1-js/5-functions-closures/4-closures-usage/2-stringbuffer/task.md
2015-03-10 12:36:58 +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'

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