监听者模式
2018-06-24 00:42:30来源:未知 阅读 ()
在函数里传回调函数,可以实现在特定的条件下执行想要的功能,但是缺点是什么呢?如果你要在特定条件下执行很多的功能,咋办呢?再次调用函数,然后回调?太啰嗦;
这里说的监听者模式呢,其实也是一种思想,用大白话比喻呢就是:比如说有一个人比赛得了冠军(也可以是亚军,233),然后嘞,有三个人分别想做三件事,但是,这三件事只有当前面那个人拿了冠军,这三件事才会被做;那么,怎么办呢?
用监听者模式的思想来解决这件事:先定义两个方法,一个方法用来将三个人想做的事push进一个定义好的数组里面;另一个方法,遍历数组,执行数组里的方法;
(其实我是自己明白的,就怕表达不清楚~)
写一个简单的应用,代码如下:
1 //定义一个person对象
2 let person = {
3 listens : [],
4
5 //将需要特定时机触发的函数push进listens数组里
6 //调用下边的executeListener函数就可以触发
7 addListener : function(fn){
8 this.listens.push(fn);
9 },
10
11 //在特定条件下调用函数,执行listens里面的函数
12 executeListener : function() {
13 this.listens.forEach(function(ele){
14 ele();
15 });
16 }
17 };
18
19 //分别将要做的事情push进数组里面,等拿了冠军,一起调用
20 person.addListener(function(){
21 console.log('恭喜你,拿了冠军');
22 });
23 person.addListener(function(){
24 console.log('拿了冠军,送给你一束鲜花');
25 });
26 person.addListener(function(){
27 console.log('得了冠军,回家请你饱餐一顿');
28 });
29
30
31 //拿了冠军了,好,执行那三件事吧~
32 if('拿了冠军'){
33 person.executeListener();
34 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:List of js
- JavaScript函数表达式详解及实例 2020-03-25
- 带你了解JavaScript中的函数 2020-03-08
- 详谈构造函数加括号与不加括号的区别 2020-01-17
- JavaScript匿名函数与委托使用示例 2020-01-07
- JavaScript中的apply和call函数详解 2020-01-07
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash