微信扫描,关注找手游公众号
现在玩传奇手游的玩家还是比较多的,这类游戏还是很有特点的,能够刷金也能够获取足够的资源,让玩家能够沉浸式的体验它的乐趣,那么传奇手游的开服时间是多少呢?让我们一...
2024-09-22
2、用来传递数据;
3、data数据备用;
const map = new Map();
let current = null;
const data = {
name: 'madapao',
age: 18,
sex: '男',
}
创建一个类
deps数组收集游戏陪玩平台源码依赖,add方法添加游戏陪玩平台源码依赖。
class Watcher {
constructor() {
this.deps = [];
}
add(dep) {
this.deps.push(dep)
}
}
收集和触发
对data中的数据进行劫持:
Object.keys(data).forEach(key => {
Object.defineProperty(data, key, {
get() {
if (map.has(key)) {
const watcher = map.get(key);
watcher.add(current);
map.set(key, watcher)
} else {
const watcher = new Watcher();
watcher.add(current);
deps.set(key, watcher);
}
},
set() {
if (map.has(key)) {
map.get(key).deps.forEach(fn => fn())
}
}
})
})
使用
在执行方法,暂时把赋值给,使用data中数据key时。就会触发key的get。把放进key对应的deps中。
当修改key的值时,就会触发key对应收集到的所有方法。
function getAgeName() {
current = getAgeName;
console.log('getAgeName执行了')
return `${data.name}'今年'${data.age}岁。`
}
function getSexName() {
current = getSexName;
console.log('getSexName执行了')
return `${data.name}'是一个'${data.sex}人。`
}
getAgeName();
getSexName();
data.name = 'mahaha';
全部代码
const deps = new Map();
let current = null;
class Watcher {
constructor() {
this.deps = [];
}
add(dep) {
this.deps.push(dep)
}
}
const data = {
name: 'madapao',
age: 18,
sex: '男',
}
Object.keys(data).forEach(key => {
Object.defineProperty(data, key, {
get() {
if (deps.has(key)) {
const watcher = deps.get(key);
watcher.add(current);
deps.set(key, watcher)
} else {
const watcher = new Watcher();
watcher.add(current);
deps.set(key, watcher);
}
},
set() {
if (deps.has(key)) {
deps.get(key).deps.forEach(fn => fn())
}
}
})
})
function getAgeName() {
current = getAgeName;
console.log('getAgeName执行了')
return `${data.name}'今年'${data.age}岁。`
}
function getSexName() {
current = getSexName;
console.log('getSexName执行了')
return `${data.name}'是一个'${data.sex}人。`
}
getAgeName();
getSexName();
data.name = 'mahaha';
以上便是“游戏陪玩平台源码开发,依赖收集和触发的实现”的全部内容,希望对大家有帮助。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,请告知我们,本站将立刻删除涉嫌侵权内容。
相关文章
现在玩传奇手游的玩家还是比较多的,这类游戏还是很有特点的,能够刷金也能够获取足够的资源,让玩家能够沉浸式的体验它的乐趣,那么传奇手游的开服时间是多少呢?让我们一...
2024-09-22
现在的游戏题材除了三国,我还能想到的就是西游了,现在市场上那么多关于西游类型的游戏,好玩的精品却是没有几个,因此小编给大家带来了少年西游记手游。...
2024-09-22
5月5日,2024道达尔能源·汤姆斯杯暨尤伯杯收官,中国羽毛球队顽强拼搏,男队与女队双双登上2024道达尔能源·汤姆斯杯暨尤伯杯的最高领奖台。...
2024-09-22
新开传奇私服新服网为热血传奇私服玩家提供最新新开传奇私服、单职业传奇私服、冰雪传奇sf、传奇手游私服、迷失传奇私服等版本游戏攻略...
2024-09-22
热评文章
2022年专属火龙之神途新版
1.80龙神合击传奇
1.76永恒小极品+5复古传奇
1.76双倍魔天大极品第三季单职业
1.76神梦传奇三职业
1.80聖统圣统合击三职业传奇