Встречается на собеседованиях • сегодня

Что можно сделать с помощью setter в Proxy

Сеттер в Proxy позволяет перехватывать и модифицировать операции записи свойств объекта. Основные возможности:

  1. Валидация значений перед записью:
js
const proxy = new Proxy({}, {
  set(target, prop, value) {
    if (prop === 'age' && typeof value !== 'number') {
      throw new TypeError('Age must be a number');
    }
    target[prop] = value;
    return true;
  }
});
  1. Логирование изменений:
js
set(target, prop, value) {
  console.log(`Setting ${prop} to ${value}`);
  target[prop] = value;
  return true;
}
  1. Преобразование данных перед записью:
js
set(target, prop, value) {
  if (prop === 'price') {
    target[prop] = Math.round(value * 100) / 100; // округление до 2 знаков
  } else {
    target[prop] = value;
  }
  return true;
}
  1. Запрет изменения определенных свойств:
js
set(target, prop, value) {
  if (prop === 'readonlyProp') return false;
  target[prop] = value;
  return true;
}

Важно всегда возвращать true при успешной записи или false при ошибке (в strict mode выбросит TypeError).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы