那些年 你需要解决的观察者模式/发布-订阅模式(ES6语法)

这是参考的地址: https://www.jb51.net/article/137419.htm;(看了很多版本觉得这个很不错)

在笔试和一些面试经验交流的帖子中进程出现订阅者模式,想着自己还不是很清楚,所以得解决,但是我们的目的应该不仅仅是对付笔试和面试,应该了解这个模式的思想:松散耦合代码形式!更多的大家看别的描述吧,会比我更清楚,这里也不累述,只是加入自己更加通俗的理解:我们的_events是一个可以看成是一个库里面包括了所有的订阅者的信息,信息就是订阅者的type,我把type当做是订阅者的姓名,然后对象的type(订阅者)有不同的fn(订阅的内容),这样也许会好理解一些

我在原作者上进行了语法的简单精简,剔除了执行作用域的部分(context),并且在作者可能没有提到的点做了相对而言比较详细的注释,另外本文需要有一定的ES6语法的底子,比如说:箭头函数,展开符(...),ES6中class类,Object.create(),findIndex(),参数传递默认值等等;
另外"_"的符号是约定俗成的表示,代表该变量是给内部使用的,但是更多时候见仁见智吧...

//自定义便捷的数据类型判断函数
const isType=obj=>Object.prototype.toString.call(obj).slice(8,-1).toLowerCase();
const isArray=obj=>Array.isArray(obj)||isType(obj)==='array';
const isNullOrUndefined=obj=>obj===null||obj===undefined;

//内部函数钩子,不对外开放;
//主要用于处理初始值,初始化对象EventEmitter的_events内容
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值