Skip to content

Commit 8792c26

Browse files
committed
✨ Observer
1 parent 6fe5b80 commit 8792c26

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
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

0 commit comments

Comments
 (0)