Смотреть, если объект изменился

Можно ли выполнить какой-то код каждый раз, когда объект изменился?

var a = {x: 12, y: 63};

a.watch(function () { console.log('The object has changed!'); });

a.x = 16;   // The object has changed!
a.y = 1;   // The object has changed!

Кажется, он доступен только в Firefox: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/watch

Как можно добиться этого в JavaScript / node.js? (если возможно, без использования метода получения / установки)

1 ответ

Вы можете использовать Object Observe... это экспериментально, поэтому будьте осторожны...

var obj = {
    foo: 0,
    bar: 1
};

Object.observe(obj, function(changes) {
    console.log(changes);
});

obj.baz = 2;
Другие вопросы по тегам