javascript函数调用问题

时间:2019-04-05 16:52:49

标签: javascript function

我不明白为什么要对案例2调用反跳功能,而对案例1却不起作用...

<input type="text" oninput="logText()" id="ti">

  1. 这有效:

var logText = debounce(getInputValue, 400)

  1. 这不起作用:

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) { /**/}

提前谢谢!

1 个答案:

答案 0 :(得分:1)

这是因为debounce接受函数的参数和时间值。它用某种逻辑包装提供的函数,因此将其调用,该方法返回一个触发的函数,说您想运行此函数。

因此,在第一个中,您将重新调整的函数设置为一个变量,该变量在单击时被调用。那就是您应该使用它的方式。

您的第二个调用debounce函数,而对返回的函数不执行任何操作。因此该功能永远不会执行。执行它也是没有意义的,因为您将创建去抖动功能的新实例,这将使您要解决的问题失去作用。这与直接调用getInputValue没什么不同。或根据去抖动的编写方式,将有400ms的延迟。

相关问题