我如果把debounce函数去掉的话也是可以执行的?debounce函数在这里起了什么作用?
其中的变量immediate和timeout起到了什么作用,最好能通俗的解释下这个函数执行过程
function debounce(func, wait = 20, immediate = true) {
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);
};
};
防抖动,详细可以参考下面两个链接:
函数防抖与节流
实例解析防抖动(Debouncing)和节流阀(Throttling)
要学会善用搜索引擎。