闭包
概念
闭包指的就是那些能够访问独立的变量的函数!
闭包要解决的问题
函数中声明的变量不能被函数外部直接使用
闭包的基本模型
|
|
使用闭包设置和获取变量的值
|
|
闭包的原理
就是作用域的访问规则!
闭包的作用
- 给函数提供一个私有的变量
- 保护变量,给变量的设置提供专有的渠道,在这个渠道中可以添加一些校验的逻辑
缓存
- 浏览器缓存
- CDN
- 硬件缓存
缓存封装
|
|
jQuery缓存源码
|
|
递归实现的斐波那契数列存在的性能问题
由于存在大量的重复的计算,所以导致在40多之后,就算不出来了123456function fib(n){ if(n==1 || n==2){ return 1; } return fib(n-1) + fib(n-2); //每个分支下都会执行到 n==1或者n==2的时候 即使之前已经被计算出结果}
解决方案
- 提供一个缓存,用这个缓存来存储计算出来的数据
- 每次在计算的时候,首先先从缓存中去获取,如果有,就直接返回
- 如果没有,就通过递归的方式去计算
- 计算出来之后,一定要记着保存到缓存中去,以便下次使用
|
|