为了账号安全,请及时绑定邮箱和手机立即绑定

【金秋打卡】第18天 从函数到函数式编程之路

标签:
JavaScript

课程名称:破解JavaScript高级玩法
课程章节:第7章 如果不用vue,react框架,如何操作DOM?
主讲老师:Cloud

课程内容:

今天学习的内容包括:
7-9 3行,6行,8行代码实现订阅发布中心——订阅消息分发原生处理。
7-10 综合训练——尝试实现相关问题。

课程收获:

订阅发布中心
  • 是什么: 是一种消息通知机制,也是一种发布订阅模式的的实际应用
  • 应用场景:公众号消息,短信提醒等等
  • 前端四大手写题之一
最基础的订阅发布中心
  • on:订阅
  • once:订阅,但仅仅接受─次通知
  • off:取消订阅
  • emit:派发事件,通知订阅者
原理浅析
  • window是表象,根源是 EventTarget
  • document和元素节点也是继承于EventTarget
  • XMLHttpRequest, WebSocket也继承于EventTarget
EventTarget
  • 构造函数:EventTarget() - 创建一个新的EventTarget对象实例
  • 方法
    – EventTarget.addEventListener():在EventTarget上注册特定事件类型的事件处理程序。
    – EventTarget.removeEventListener():EventTarget中删除事件侦听器。
    – EventTarget.dispatchEvent():将事件分派到此EventTarget。
3行版本存在的问题
  1. 不能多实例化啊
  2. 挂载window上太丑了
  3. 不能传递多参数啊
  4. 参数从ev.detail上获取,不合理
  5. 不能在nodejs中使用啊
6行代码版本存在的问题
  • ev.detail上获取参数
  • 不能传递多个参数
核心知识点
  • EventTarget
  • CustomEvent
  • 分组运算符
  • 高阶函数

今天 学习了 3行,6行,8行代码实现订阅发布中心。了解了底层如何实现emits消息分发,虽然我不怎么懂,但是体会了技术的魅力。对自己说一句,加油😀~

坚持打卡,坚持学习!明天见💪~


https://img1.sycdn.imooc.com//636c578c0001467723251432.jpg

https://img1.sycdn.imooc.com//636c57a100014fdd23121419.jpg

https://img1.sycdn.imooc.com//636c58ed0001014a23271412.jpg

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消