事件中的回调函数在不调用的情况下传参
-
方法一
注意 : addEventListenner传的第二个参数得是函数本身,所以我们可以用函数包起来,在函数体中传参
function reuse(data) { window.scroll({ top: data, behavior: 'smooth' }) } // 返回顶部 backTop.addEventListener('click', () => {reuse(0)})
-
方法二
注意 : 事件中真正的回调函数是return的那个对象, 如果ruetrn的那个函数有形参, 那么默认会解析成e事件对象
function reuse(data) { return () => { window.scroll({ top: data, behavior: 'smooth' }) } } // 返回顶部 backTop.addEventListener('click', reuse(0))
-
方法三
原理 : 使用bind改变this指向, bind返回一个函数
function reuse(data) { window.scroll({ top: data, behavior: 'smooth' }) } // 返回顶部 backTop.addEventListener('click', reuse.bind(this, 0))