本文实例为大家分享了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小时内与您取得联系。