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 祝福语驱散霉运的话简短