JavaScript js 向监听事件函数传参

LifetruthForgotten · 2018年06月28日 · 最后由 Jim 回复于 2018年06月28日 · 76 次阅读
window.onmousemove = function(e,t){}(event,this)

该函数只执行一次,如何传参后依然能重复执行

共收到 9 条回复
window.onmousemove = function(){
  // 直接使用外部变量就行了
}

// 或者这样

function handler(params){
  return function(e){
    //  使用params
  }
}

window.onmousemove=handler(1)
zeimeiaj 回复

但是我内部访问不到外部的this呀

你把this传进入经好啦

如果你只是想访问外面的this的话,直接绑定外部this 到 事件函数里面

function handler(e){
  // 当前this 就是你绑定的this
}
window.onmousemove=handler.bind(context)
zeimeiaj 回复

我使用了第二种方法,我可以问一下为什么直接调用时只执行一次,而返回匿名函数就可以重复执行呢,谢谢啦

你直接执行了后返回了undefined 赋值给 onmousemove,bind方法实际上就是返回了一个新的函数。

zeimeiaj 回复

了解了,十分感谢

不用谢,我修改了标题,方便后来的同学搜索相同的问题哈

zeimeiaj 回复

zuimeiaj?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册