防抖与节流
防抖(debounce)
防抖是高频触发的情况下,触发结束的n秒后触发函数(延迟触发),如果这n秒内再次触发事件则时间会重新计算,只执行最后一次。
最简单的实现
function debounce(func, wait) {
var timeout;
return function () {
clearTimeout(timeout)
timeout = setTimeout(func, wait);
}
}
修改this指向的
function debounce(func, wait) {
var timeout;
return function () {
var context = this;
clearTimeout(timeout)
timeout = setTimeout(function(){
func.apply(context)
}, wait);
}
}<