首页 > 试题

emit

更新时间:2023-01-20 14:45:35 阅读: 评论:0

初三英语卷子-一会见英文


2023年1月20日发(作者:tara雅琳)

简单模拟发布订阅模式之on、once、off、emit、clear

简单模拟发布订阅模式之on、once、off、emit、clear

clasventBus{

constructor(){

={}

}

on(key,fn){

y([key])?[key].push(fn):[key]=[fn]

}

once(key,fn){

letvm=this

functioncurOnce(){

(key,fn)

(key,curOnce)

}

=fn//once函数上的标识函数:移除curOnce,同时移除fn

(key,curOnce)

}

emit(key,fn){

if(!y([key])||![key].length)return

if(typeoffn!=='function'){

[key].forEach(f=>f())

}el{

//===fn:这⾥的判断是处理once指定的函数,请看这⾥:=fn

[key].forEach(f=>(f===fn||===fn)&&fn())

}

}

off(key,fn){

if(!y([key])||![key].length)return

if(typeoffn!=='function'){

(key)

}el{

constindex=[key].findIndex(f=>f===fn||===fn)

if(index!==-1)[key].splice(index,1)

}

}

clear(key){

if([key])[key]=[]

}

}

functionaaa(){

('aaa');

}

functiononcefn(){

('oncefn');

}

functiononcefn22(){

('oncefn22');

}

constBus=neweventBus()

//测试on

//('aaa',aaa)

//('aaa',oncefn22)

//测试clear

//('aaa')

//('aaa',aaa)

//('aaa',oncefn22)

//('aaa')

//测试once

('once',oncefn)

('once',oncefn22)

//测试clear

//('once')

//('once',oncefn)

//('once',oncefn22)

('once')

('once')

//测试移除绑定的on

//('aaa',aaa)

//('aaa')

//测试移除绑定的once

//('once',oncefn22)

//('once',oncefn22)

//('Bus:',Bus);

本文发布于:2023-01-20 14:45:35,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/88/101833.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:孟子三章
下一篇:实习报告总结
标签:emit
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图