我不明白为什么要对案例2调用反跳功能,而对案例1却不起作用...
<input type="text" oninput="logText()" id="ti">
var logText = debounce(getInputValue, 400)
function logText() {
debounce(getInputValue, 400)
}
function getInputValue(e) {
var inputT = document.getElementById('ti')
var inputText = inputT.value
console.log(inputText)
}
function debounce(func, wait, immediate) { /**/}
提前谢谢!
答案 0 :(得分:1)
这是因为debounce
接受函数的参数和时间值。它用某种逻辑包装提供的函数,因此将其调用,该方法返回一个触发的函数,说您想运行此函数。
因此,在第一个中,您将重新调整的函数设置为一个变量,该变量在单击时被调用。那就是您应该使用它的方式。
您的第二个调用debounce函数,而对返回的函数不执行任何操作。因此该功能永远不会执行。执行它也是没有意义的,因为您将创建去抖动功能的新实例,这将使您要解决的问题失去作用。这与直接调用getInputValue
没什么不同。或根据去抖动的编写方式,将有400ms的延迟。