- A+
所属分类:Web前端
? 闭包
- 闭包就是能够读取其他函数内部变量的函数,将函数内部和外部连接起来的一座桥梁,即定义在函数内部的函数。
- 用途
- 读取函数内部的变量
- 让变量的值始终保持在内存中
- 注意
- 闭包对内存消耗很大,会影响网页的性能,在
IE
中可能导致内存泄漏,在退出函数之前,将不使用的局部变量全部删除 - 闭包会在父函数外部,改变父函数内部变量的值
- 如果把父函数当作对象
object
使用,将闭包当作公用方法Public Method
,内部变量当作私有属性private value
使用时,不要随便改变父函数内部变量的值
- 如果把父函数当作对象
- 闭包对内存消耗很大,会影响网页的性能,在
? 防抖
- 一定时间内,函数只会执行最后一次任务
- 缺点:当用户在指定时间间隔中一直操作,那么
setTimeout
里的函数永远不会执行
? 截流
- 一定时间内,函数只执行一次
- 缺点:如果用户一直操作,那么
setimeout
里的函数会在指定时间间隔后都会执行一次
? 防抖截流的区别
- 相同点
- 都用到了
setTimeout
定时器 - 都是在指定时间间隔后执行函数
- 都是优化高频率执行
js
代码的一种手段 - 都是为了解决数据时时变化而时时请求导致性能差的问题
- 都用到了
- 不同点
- 防抖在指定时间间隔里再次调用函数,会清除定时器,重新计时,直到在最新的计时时间间隔里没有调用函数,才会执行定时器里的函数
- 节流会在指定时间间隔后会执行一次函数,不会清除定时器而重新计时