File tree Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Original file line number Diff line number Diff line change
1
+ const salesOffices = { } // 定义售楼处
2
+
3
+ salesOffices . clientList = [ ] // 缓存列表,存放订阅者的回调函数
4
+
5
+ // 增加订阅者
6
+ salesOffices . listen = function ( fn ) {
7
+ this . clientList . push ( fn ) // 订阅的消息添加进缓存列表
8
+ }
9
+
10
+ // 发布消息
11
+ salesOffices . trigger = function ( ) {
12
+ for ( let i = 0 , fn ; ( fn = this . clientList [ i ] ) ; i ++ ) {
13
+ fn . apply ( this , arguments ) // arguments是发布消息时带上的参数
14
+ }
15
+ }
16
+
17
+ // 小明订阅消息
18
+ salesOffices . listen ( function ( price , squareMeter ) {
19
+ console . log ( '===小明收到===' )
20
+ console . log ( '价 格 = ' + price )
21
+ console . log ( 'squareMeter = ' + squareMeter )
22
+ } )
23
+
24
+ // 小红订阅消息
25
+ salesOffices . listen ( function ( price , squareMeter ) {
26
+ console . log ( '===小红收到===' )
27
+ console . log ( '价 格 = ' + price )
28
+ console . log ( 'squareMeter = ' + squareMeter )
29
+ } )
30
+
31
+ salesOffices . trigger ( 2000000 , 88 ) // 输出:2000000,88
32
+ salesOffices . trigger ( 3000000 , 110 ) // 输出:3000000,110
You can’t perform that action at this time.
0 commit comments