学完 渡一,“你不知道的JS”。自己顺手巩固了一下学过的知识点。
1、节流(防止短时间内多次点击按钮会发出多个请求)
function throttle(handler,wait){
var lastTime = 0;
return function(){
var nowTime = new Date().getTime();
if(nowTime-lastTime>wait){
lastTime = nowTime;
//改变指向
handler.apply(this,arguments)
}
}
}
2、防抖(就像百度搜索框,输入完最后一个字符才发送请求)
function debounce(handler,wait){
//一定在内部函数外面声明timer 在里面的话就不是同一个timer了,也就无法关闭定时器了。
//私有化timer变量
var timer = null;
return function(){
clearTimeout(timer);
//用bind可以返回一个函数,不会立即执行。
timer = setTimeout(handler.bind(this,arguments[0]),wait);
//或者这样
/* var self = this;
var args = arguments;
timer = setTimeout(function(){
handler.apply(