关于arguments 怎么获取
来源:16-8 手写防抖 debounce

俊逸_ajay
2022-01-15
老师关于怎么传参的问题
看了之前的提问
看完后还是不知道怎么传,下面这样写也不对
const input1 = document.getElementById('input1')
function debounce(fn, delay) {
let timer = null // timer是闭包中的
return function () {
if (timer) {
clearTimeout(timer)
}
timer = setTimeout(() => {
console.log(arguments)
fn.apply(this, arguments) // 面试的时候直接写 fn()也行了
// fn()
timer = null
}, delay)
}
}
function fn (a,b,c) {
console.log(arguments)
}
const fn1 = debounce(fn, 600)
input1.addEventListener('keyup', fn1(10, 20, 30))
正确该怎么写呢
写回答
2回答
-
笑着拍拍你的头
2022-09-05
语法错了fn1(10, 20, 30)是立刻执行,正确的写法:
return function (number, number1, number2) { // xxx } function fn (a,b,c) { console.log(a,b,c) } let fn1 = debounce(fn, 600) input1.addEventListener('keyup', function (e) { fn1(1,2,3) })
10 -
双越
2022-01-16
改成 fn.apply(this, Array.from(arguments)) 试试
012022-05-24
相似问题