en.javascript.info/1-js/99-js-misc/01-proxy/03-observable/task.md
Ilya Kantor 763aba5075 fixes
2019-08-13 13:42:36 +03:00

795 B

Observable

Create a function makeObservable(target) that "makes the object observable" by returning a proxy.

Here's how it should work:

function makeObservable(target) {
  /* your code */
}

let user = {};
user = makeObservable(user);

user.observe((key, value) => {
  alert(`SET ${key}=${value}`);
});

user.name = "John"; // alerts: SET name=John

In other words, an object returned by makeObservable is just like the original one, but also has the method observe(handler) that sets handler function to be called on any property change.

Whenever a property changes, handler(key, value) is called with the name and value of the property.

P.S. In this task, please only take care about writing to a property. Other operations can be implemented in a similar way.