首先,不管是哪个知识点,我们先要搞明白他是什么,其次,我们要知道,理解运用他之后,能干什么。最后,用了之后能起到什么作用。奔着这三个方向,搞清楚一个知识点并得心应手,是很快的。
1:防抖表示当指定时间内持续触发某个事件时,该事件会进行初始刷新,重新开始计算。
function debounce(fn, time) {
let timer = null;
return function() {
if (timer) clearTimeout(timer);
timer = setTimeout({
fn.apply(this, arguments);
}, time)
}
}
2:节流当指定时间持续触发某个事件时,该事件只会执行首次触发事件,也就是说指定时间内只会触发一次
function throttle(fn, time) {
let canRun = true;
return function() {
if (!timer) return;
canRun = false;
timer = setTimeout( () => {
fn.apply(this, arguments);
canRun = true;
}, time)
}
}