Object.observe example
// A model can be an object literal
var plainObject = {
name: 'Counter',
total: 0
};
// Define an observer method
function observer(changes){
changes.forEach(function(change, i){
console.log('what property changed? ' + change.name);
console.log('how did it change? ' + change.type);
console.log('whats the current value? ' + change.object[change.name]);
console.log(change); // all changes
});
}
// Start watching the object
Object.observe(plainObject, observer);
Object.unobserve(plainObject, observer);