全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

javascript观察者模式实现自动刷新效果

本文实例为大家分享了js观察者模式实现自动刷新的具体代码,供大家参考,具体内容如下

// author wangbinandi@gmail.com

const observable = obj => {
  const observers = Symbol();
  const set = function(target, key, value) {
    const result = Reflect.set(target, key, value);
    //console.log("set key:" + key);
    if ( target[observers].has(key) ) {
      target[observers].get(key).forEach(observer => observer());
    }

    return result;
  }

  const get = function(target, key) {
    const result = Reflect.get(target, key);
    //console.log("get key:" + key);
    if (arguments.callee.caller) {
      if (!target[observers].has(key)) {
        target[observers].set(key, new Set())
      }
      target[observers].get(key).add(arguments.callee.caller);
    }

    return result;
  }

  obj[observers] = new Map(); // string => Set()
  return new Proxy(obj, {set, get});
};

const autorun = fn => fn();

var person = 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;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# js  # 观察者模式  # 自动刷新  # JavaScript观察者模式原理与用法实例详解  # 原生javascript实现类似vue的数据绑定功能示例【观察者模式】  # PHP观察者模式实例分析【对比JS观察者模式】  # JavaScript设计模式之观察者模式实例详解  # JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例  # JS设计模式之观察者模式实现实时改变页面中金额数的方法  # JavaScript原生实现观察者模式的示例  # JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解  # JavaScript观察者模式(publish/subscribe)原理与实现方法  # 深入理解Javascript中的观察者模式  # Javascript设计模式之观察者模式(推荐)  # 学习JavaScript设计模式之观察者模式  # JavaScript观察者模式(经典)  # 怎样用JavaScript实现观察者模式  # 大家分享  # 具体内容  # 大家多多  # function  # target  # key  # observers  # Symbol  # set  # log  # forEach  # observer  # result  # Reflect  # console  # gt  # pre  # class  # brush  # arguments 


相关文章: 如何在阿里云通过域名搭建网站?  青岛网站建设如何选择本地服务器?  建站之星后台密码遗忘或太弱?如何重置与强化?  北京网站制作公司哪家好一点,北京租房网站有哪些?  高防服务器租用首荐平台,企业级优惠套餐快速部署  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  如何快速打造个性化非模板自助建站?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  如何在七牛云存储上搭建网站并设置自定义域名?  如何撰写建站申请书?关键要点有哪些?  高端网站建设与定制开发一站式解决方案 中企动力  创业网站制作流程,创业网站可靠吗?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  建站之星免费模板:自助建站系统与智能响应式一键生成  定制建站如何定义?其核心优势是什么?  如何在Golang中指定模块版本_使用go.mod控制版本号  ,网页ppt怎么弄成自己的ppt?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  如何快速使用云服务器搭建个人网站?  南平网站制作公司,2025年南平市事业单位报名时间?  怎么将XML数据可视化 D3.js加载XML  香港服务器建站指南:免备案优势与SEO优化技巧全解析  哈尔滨网站建设策划,哈尔滨电工证查询网站?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  ,购物网站怎么盈利呢?  如何在万网ECS上快速搭建专属网站?  如何选择域名并搭建高效网站?  昆明高端网站制作公司,昆明公租房申请网上登录入口?  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  如何通过免费商城建站系统源码自定义网站主题与功能?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  网站微信制作软件,如何制作微信链接?  C#怎么创建控制台应用 C# Console App项目创建方法  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  深圳 网站制作,深圳招聘网站哪个比较好一点啊?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  如何用PHP工具快速搭建高效网站?  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  如何在Windows服务器上快速搭建网站?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何选择美橙互联多站合一建站方案?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  c# await 一个已经完成的Task会发生什么 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。