知识储备:es6,设计模式。
const observerSet = new Set();
const proxy = target => new Proxy(target,{//观察者观察数据变化
set(target, p, value, receiver) {
let result = Reflect.set(target, p, value, receiver);
observerSet.forEach(fn=>{
fn();//set操作后执行观察者模式后面的方法
});
return result;
}
})
const person = proxy({
name:'朱宏',
age:18
});
const observer = fn =>{
observerSet.add(fn);
}
observer(print);
function print(){
console.log(`${person.name}${person.age}`)
}
person.name = 'hognhogn';