JS的防抖与限流/闭包
JS的防抖与限流
JS防抖
理解:将多次操作变成一次
实现示例:
function antiShake(fn,wait){
let timeOut = null;
return args => {
if(timeOut) clearTimeOut(timeOut);
timeOut = setTimeout(fn,wait);
}
}


JS限流
理解:某一时间段内多个请求合并请求为一次
应用场景:1、提交表单 2、高频监听事件请求
实现实例:
function throttle(enent,time){
let timer = null;
return function(){
if(!timer){
timer = setTimeout(()=>{
event();
timer = null;
},time);
}
}
}
JS闭包
闭包:方法里面返回方法
存在的意义
- 延长变量的生命周期(全局变量和局部变量)
- 创建私有环境(独立的词法作用域)
Vue 中 data()为什么是一个函数
data(){
return {
}
}
一个经典的闭包示例:


浙公网安备 33010602011771号