javascript - 如何给监听事件的外部回调函数传递this和e?
问题描述:
相关代码
constructor() { var _this = this; window.addEventListener("keydown", _this.keyDownEvent(event, _this), false); } keyDownEvent(e, _this) { console.log(e.keyCode) }
找了一天相关的问题,实在是没有找到解决方法,求大佬帮忙看下。
我试过e、event、this.event都报错了
Uncaught TypeError: Cannot read properties of undefined (reading 'keyCode')
因为需要用到keyCode,请问有什么办法可以解决吗?(可以的话,请使用原生代码。)
第 1 个答案:
constructor() { this.keyDownEvent = this.keyDownEvent.bind(this); window.addEventListener("keydown", this.keyDownEvent, false); } keyDownEvent(e) { console.log(e.keyCode) }
第 2 个答案:
把keyDownEvent放在匿名函数里面就行了
class demo { constructor() { var _this = this; window.addEventListener("keydown", function (event) { _this.keyDownEvent(event, _this) }, false); } keyDownEvent (e, _this) { console.log(e.keyCode) } } let d = new demo()
匿名函数改为箭头函数更方便:
class demo { constructor() { window.addEventListener("keydown", (event) => { this.keyDownEvent(event, this) }, false); } keyDownEvent (e, _this) { console.log(e.keyCode, _this) } } let d = new demo()
这个是element ui vue3的表格筛选,我想做的事如果我单选他返回true,这样没问题,但是如果我多选,我想多选的每个都符合才返回true,这个应该怎么写啊? <el-ta ...