Рубрики
JavaScript Программирование

Колбеки при изменении JS объекта

В 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)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *