提问人:bugsyb 提问时间:12/21/2021 更新时间:12/21/2021 访问量:46
访问回调中的参数 (javascript)
Accessing arguments within a callback (javascript)
问:
我正在尝试编写一个“去抖动”函数,但我被困在代码的一个片段中。在下面的代码中,我将回调传递到中,并将其包装在一个函数中。addEventListener
debounce
这个函数以后会有更多的功能,但现在,我只希望它返回一个函数,该函数将设置毫秒的超时,然后使用参数调用原始函数(在本例中)。delay
e
我的问题在函数中显示。我想将“original-args”替换为传递到回调中的实际参数。我如何访问该参数?debounce
callback("original-args")
button.addEventListener("click", debounce(e => {
let elem = document.createElement("P");
elem.textContent = "Clicked";
container.appendChild(elem);
}, 2000))
function debounce(callback, delay) {
return function() {
setTimeout(() => {
callback("original-args")
}, delay)
}
}
答:
0赞
Marco Nisi
12/21/2021
#1
您可以执行如下操作:
button.addEventListener(
"click",
debounce(
(e) => {
let elem = document.createElement("P");
elem.textContent = "Clicked";
container.appendChild(elem);
},
2000
)
);
function debounce(callback, delay) {
return function (...args) {
setTimeout(() => {
callback(...args);
}, delay);
};
}
因此,您可以将其传递给去抖动函数。这是一个点差运算符,表示 。...args
...args
take any number of arguments and store them inside the variable args
评论