떨림 방지 & 절류 함수의 실현
4703 단어 기본 내용
구현:
떨림 방지:
function debounce(fn, wait) {
var timer = null;
return function() {
// ,
if (timer) {
clearTimeout(timer);
timer = null;
}
// ,
timer = setTimeout(() => {
fn.apply(this, arguments);
}, wait);
};
}
흐름을 줄이다
function throttle(fn, delay) {
var preTime = Date.now();
return function() {
var nowTime = Date.now();
// , 。
if (nowTime - preTime >= delay) {
preTime = Date.now();
return fn.apply(this, arguments);
}
};
}