console
function observer(target) {
const div = document.getElementById("container");
const proxy = new Proxy(target, {
set(target, prop, value) {
target[prop] = value;
render();
},
get(target, prop) {
return target[prop];
}
})
render();
function render() {
let html = "";
for (const prop of Object.keys(target)) {
html += `<p>
<span>${prop}:</span>
<span>${target[prop]}</span>
</p>`
}
div.innerHTML = html;
}
return proxy;
}
const target = {
a: 1,
b: 2
}
const obj = observer(target);
obj.e = 43;
<div id='container'></div>