事件监听的第三个参数this?
程序员文章站
2022-07-12 09:35:12
...
本人在第一次学习使用事件监听的时候,在JavaScript语法中,经常看到的是第三个参数的是是否在冒泡阶段进行,参数值是boolean,但是在官方的游戏案例中,经常出现第三个参数是this.在这里解释一下,这里的第三个参数为this的说明(严格上并不是第三个参数,视觉上觉得是第三个参数),只是个人见解,如有错误,请大神指点迷津.
Cocos creator官方小游戏实例中,在绑定键盘监听事件中,有这么一段代码:
// 初始化键盘输入监听
cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
cc.systemEvent.on(cc.SystemEvent.EventType.KEY_UP, this.onKeyUp, this);
},
实际效果跟下面的这段一样:
// 初始化键盘输入监听
cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown).bind(this);
cc.systemEvent.on(cc.SystemEvent.EventType.KEY_UP, this.onKeyUp).bind(this);
},
Javascript事件监听器语法是这样说明的:
因此,第二个代码段实际上是省略了第三个参数,与第一个代码段的效果是一样的, 所以在严格意义上this并不是第三个参数.