//防抖(debounce):连续的触发中只有最后一次才会执行函数
function debounce (func, wait) {
let timeout;
return function () {
if (timeout) clearTimeout(timeout);
timeout = setTimeout(() => {
func.apply(this, arguments);
}, wait);
};
}
//节流(throttle):连续触发的事件n毫秒内只执行1次
function throttle (func, wait) {
let prev = 0;
return function () {
const now = new Date();
if (now - prev > wait) {
func.apply(this, arguments);
prev = now;
}
};
}
注:时间对象可以做减法