/**
* 函數去抖
* 空閑控制 返回函數連續(xù)調用時塞琼, 空閑時間必須大于或等于 wait傲绣, fn 才會執(zhí)行
* @param wait { number } 空閑時間, 單位毫秒
* @param fn {function} 請求關聯(lián)函數,實際應用需要調用的函數
* @return {function} 返回客戶調用函數
*/
function debounce(fn, wait){
var timeout;
return function () {
var ctx = this,
args = arguments;
clearTimeout(timeout);
timeout = setTimeout(function () {
fn.apply(ctx, args);
}, wait);
};
}
/**
* 函數節(jié)流
* 頻率控制 返回函數連續(xù)調用時,fn 執(zhí)行頻率限定為 次 / wait
* @param wait {number} 延遲時間,單位毫秒
* @param fn {function} 請求關聯(lián)函數,實際應用需要調用的函數
* @return {function} 返回客戶調用函數
*/
function throttle(fn, wait) {
var last = 0;
return function () {
var curr = new Date();
if (curr - last > wait) {
fn.apply(this, arguments);
last = curr;
}
}
}