Иногда возникает необходимость отследить кто и когда меняет проперти какого-то существующего объекта в js. Как это можно сделать?
В JavaScript Harmony предложен метод Object.observe.
Пример использования:
var obj = { id: 1 };
Object.observe(obj, function (recs) {
// ...
});
obj.id = 2;
Когда кто-то попытается изменить любую проперти этого объекта, то сработает наш callback в котором можно посмотреть что именно поменялось.
Пока поддерживает этот метод только Chrome с включенными экспериментальными функциями js. Но, к счастью, есть несколько полифиллов для нее. Например, https://github.com/jdarling/Object.observe или https://github.com/Polymer/observe-js.