/* @param fn 要节流和防抖的函数 @param delay 规定的时间 */ // 函数防抖 function debounce(fn, delay) { // 记录上一次的延时时间 var timer = null; return function() { // 清除上一次的延时 clearTimeout(timer); timer = setTimeout(function() { // 改变this的指向 fn.apply(this); }, delay); } } // 函数节流 function throttle(fn, delay) { // 记录上一次触发的时间 var lastTime = 0; return function() { // 记录函数当前触发的时间 var nowTime = Date.now(); if (nowTime - lastTime > delay) { // 改变this指向 fn.call(this); // 同步时间 lastTime = nowTime; } } }