javascript观察者模式实现自动刷新效果
本文实例为大家分享了js观察者模式实现自动刷新的具体代码,供大家参考,具体内容如下
//authorwangbinandi@gmail.com
constobservable=obj=>{
constobservers=Symbol();
constset=function(target,key,value){
constresult=Reflect.set(target,key,value);
//console.log("setkey:"+key);
if(target[observers].has(key)){
target[observers].get(key).forEach(observer=>observer());
}
returnresult;
}
constget=function(target,key){
constresult=Reflect.get(target,key);
//console.log("getkey:"+key);
if(arguments.callee.caller){
if(!target[observers].has(key)){
target[observers].set(key,newSet())
}
target[observers].get(key).add(arguments.callee.caller);
}
returnresult;
}
obj[observers]=newMap();//string=>Set()
returnnewProxy(obj,{set,get});
};
constautorun=fn=>fn();
varperson=observable({
firstName:'Matt',
lastName:'Ruby',
age:18,
weight:50
});
autorun(function(){
console.log('autorun.getAge:'+person.firstName+''+person.age);
});
autorun(function(){
console.log('autorun.getName:'+person.firstName+''+person.lastName);
});
person.age=19;
person.weight=55;
person.firstName='test';
person.lastName='MyLast';
console.log(person.lastName);
person.age=20;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短