-
Notifications
You must be signed in to change notification settings - Fork 382
/
Copy pathleak.coffee
executable file
·78 lines (52 loc) · 1.17 KB
/
leak.coffee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/usr/bin/env coffee
log = new (require 'log')('debug')
class Group
on: (@callback)->
dispatch: (msg)->
log.info 'dispatch',msg
@callback(msg) if @callback
cb: ->
@callback
class Bot
constructor:(@list = [])->
setInterval =>
o('bbb' ) for o in @list
,500
listen_group : (name , callback) ->
group = new Group()
@list.push group.dispatch
callback group
### DEMO1
bot = new Bot()
# ggg = null
bot.listen_group 'group', (group)->
group.on (msg)->
log.info '- received',msg
group.dispatch 'aaa'
k = group.dispatch
k('single')
# ggg = group
###
# ggg.dispatch 'ccc'
#
# setInterval ->
# ggg.dispatch 'ddd'
# ,500
###期待
dispatch
- receive
dispatch
- receive
实际结果
dispatch only
原因猜测
- js中没class概念 传给list的是个函数,破坏了里面的 this.xx 的概念
###
# DEMO2
group = new Group()
group.on (msg)->
log.info '- received',msg
group.dispatch 'kk'
# obj = group
# method = group.dispatch
group['dispatch'] 'str'