我在试着理解这段代码中发生了什么,如果我弄错了,请纠正我
function debounce(func, wait, immediate) {
var timeout;
return function () {
var context = this, args = arguments;
var later = function () {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
}
$(document).on("keyup", "#SearchTerm", debounce(function (e) {
e.preventDefault();
var form = $(e.target).closest('form');
$(form).submit();
}, 300))首先,从debounce返回的函数,这将立即执行,这个引用/上下文将是"#SearchTerm“输入元素,因为jQuery在其keyup事件上附加了函数调用?
其次,在这个实例中,参数对象是否由jQuery 'keyup‘事件自动填充?
谢谢!
发布于 2017-01-31 12:07:46
首先,从debounce返回的函数,这将立即执行,这个引用/上下文将是"#SearchTerm“输入元素,因为jQuery在其keyup事件上附加了函数调用?
这是正确的。
其次,在这个实例中,参数对象是否由jQuery 'keyup‘事件自动填充?
arguments是一个原生JS构造,与jQuery没有任何关系。它返回一个类似数组的对象,该对象包含传递给函数的所有参数。有关详细信息,请参阅MDN。
https://stackoverflow.com/questions/41957092
复制相似问题