function makeObservable(target) {
let handler;
target.observe = function(handler1){
handler = handler1;
};
let proxy = new Proxy(target,{
set(target,prop,val){
handler(prop,val);
return Reflect.set(target,prop,val);
}
});
return proxy;
}
let user = {};
user = makeObservable(user);
user.observe((key, value) => {
console.log(`SET ${key}=${value}`);
});
user.name = "John"; // alerts: SET name=John
user.age =34;