Реализовать функцию с использованием замыкания

Создайте функцию внутри области с нужной переменной и верните её. Замыкание сохраняет доступ к привязке, поэтому может видеть последующие присваивания.

Короткий ответ

Что ответить на собеседовании

Создайте функцию внутри области с нужной переменной и верните её. Замыкание сохраняет доступ к привязке, поэтому может видеть последующие присваивания.

Подробный разбор

Ответ с пояснениями

Условие

Напишите функцию, которая через замыкание сохраняет ссылку на переменную из внешнего контекста и позволяет получить её значение в любой момент позже.

// TODO: реализовать замыкание, аналогично generator или другим функциям выше

Ответ

Создайте функцию внутри области с нужной переменной и верните её. Замыкание сохраняет доступ к привязке, поэтому может видеть последующие присваивания.

function createCell(initial) {
  let value = initial;
  return {
    get: () => value,
    set: next => { value = next; }
  };
}
const cell = createCell(1);
cell.set(2);
// cell.get() → 2

Здесь замкнута локальная переменная value, а не снимок её первоначального значения. Сам initial передаётся обычными правилами JavaScript; для объекта передаётся значение ссылки.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее