Встречается на собеседованиях • сегодня
Как отслеживать изменения в объекте
Для отслеживания изменений в объекте можно использовать несколько подходов:
- 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'; // Логируется изменение- Геттеры/Сеттеры (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'; // Логируется изменение- 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.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы