//节流 用户频繁粗发,只执行最初一次
/**
* 思路: 使用 t 控制fu 的执行,若想再次执行fu,设置对应时间改变t的值,使fu再次执行
*
*/
function throttle(){
let t=true
return function(){
if(t){
setTimeout(() => {
fu()
}, 500);
}
t=false
}
}
//防抖 用户频繁触发只执行频繁点击的最后一次,比如input输入框内值的监听
/**
* 思路: 使用t控制fu的执行,频繁触发t为空 ,最后一次t不为空执行fu
*
*/
let input.oninput=debounce((){ //伪代码--将input触发函数 等于防抖的函数
// console.log(this.value);//打印的值
},500)
function debounce(fu,delay){
let t=null
return function(){
if(t!==null){
clearTimeout(t)
}
t=setTimeout(() => {
fu.call(this) //改变this 指向
}, timeout);
}
}