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

Как отслеживать изменения в объекте

Для отслеживания изменений в объекте можно использовать несколько подходов:

  1. Proxy API (современный способ):
javascript
const obj = { name: 'John' };
const handler = {
  set(target, prop, value) {
    console.log(`Property ${prop} changed from ${target[prop]} to ${value}`);
    target[prop] = value;
    return true;
  }
};
const proxy = new Proxy(obj, handler);
proxy.name = 'Alice'; // Логируется изменение
  1. Геттеры/Сеттеры (ES5+):
javascript
const obj = {
  _name: 'John',
  get name() { return this._name; },
  set name(value) {
    console.log(`Name changed from ${this._name} to ${value}`);
    this._name = value;
  }
};
obj.name = 'Alice'; // Логируется изменение
  1. Object.defineProperty (для старых браузеров):
javascript
const obj = { name: 'John' };
Object.defineProperty(obj, 'name', {
  set(value) {
    console.log(`Name changed to ${value}`);
    this._name = value;
  },
  get() { return this._name; }
});

Для глубокого наблюдения за объектами лучше использовать библиотеки типа MobX или Vue reactivity system. Proxy не работает в IE11.

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

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

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

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