javascript观察者模式实现自动刷新效果
发布时间 - 2026-01-11 03:06:59 点击率:次本文实例为大家分享了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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
高端网站建设与定制开发一站式解决方案 中企动力
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
公司网站制作价格怎么算,公司办个官网需要多少钱?
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
英语简历制作免费网站推荐,如何将简历翻译成英文?
太平洋网站制作公司,网络用语太平洋是什么意思?
大同网页,大同瑞慈医院官网?
5种Android数据存储方式汇总
php结合redis实现高并发下的抢购、秒杀功能的实例
实例解析Array和String方法
Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中
canvas 画布在主流浏览器中的尺寸限制详细介绍
Android实现代码画虚线边框背景效果
Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
如何在搬瓦工VPS快速搭建网站?
原生JS实现图片轮播切换效果
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
简单实现Android文件上传
成都网站制作公司哪家好,四川省职工服务网是做什么用?
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
Laravel如何使用Blade模板引擎?(完整语法和示例)
使用spring连接及操作mongodb3.0实例
Laravel如何使用Collections进行数据处理?(实用方法示例)
Python制作简易注册登录系统
高端企业智能建站程序:SEO优化与响应式模板定制开发
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
phpredis提高消息队列的实时性方法(推荐)
JS经典正则表达式笔试题汇总
如何在局域网内绑定自建网站域名?
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
怎样使用JSON进行数据交换_它有什么限制
Laravel如何实现API版本控制_Laravel版本化API设计方案
制作公司内部网站有哪些,内网如何建网站?
无锡营销型网站制作公司,无锡网选车牌流程?
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理
Laravel如何使用Livewire构建动态组件?(入门代码)
Laravel怎么实现验证码(Captcha)功能

