В JavaScript нет встроенного механизма для отслеживания изменений в обычных объектах с помощью простых обратных вызовов. Однако вы можете использовать объект Proxy для создания прокси для другого объекта, который может перехватывать и определять пользовательское поведение для фундаментальных операций с этим объектом. Это можно использовать для создания обратных вызовов перед изменением и после него.
Вот пример того, как можно использовать Proxy для достижения чего-то похожего на обратные вызовы перед изменением и после него:
const product = {
size: "M",
available: true
};
const handler = {
set(target, property, value) {
// Before changing the value
console.log(`Before change: ${property} was ${target[property]}`);
target[property] = value; // Actually set the value
// After changing the value
console.log(`After change: ${property} is now ${target[property]}`);
return true; // Confirm the change
}
};
const proxyProduct = new Proxy(product, handler);
proxyProduct.size = "L"; // Will trigger the console logs before and after the change
Code language: JavaScript (javascript)