1. 作用域精解
执行期上下文简称AO,函数执行完后执行期上下文被删除
作用域链:
在哪个函数里查找变量就从哪个函数的作用域链的顶端依次向下查找
1.举例说明:从0依次向下找
2.继续举例:
分析:可以想成,里面的可以看见外面的,外面的看不见里面的
先定义后执行,定义就是把自己的父级函数复制粘贴,执行的时候生成自己的,定义都往后一位
2.立即执行函数(针对初始化功能的函数)
立即执行函数的写法:
第一种注意:
上面这个例子执行不了,最后一个括号前都叫函数声明,表达式123;也叫,后面如果是test()就是表达式能被执行
这个是函数表达式能被执行
能被执行符号执行的表达式,会自动放弃函数的名字,基本就成了立即执行函数(函数被执行一次之后,这个函数就被永久地放弃了)
3. 闭包
如下:return b;以后b没有被执行但是拿到了a的执行期上下文,a执行完后销毁aAO(a-AO的线被剪短了),但是在b里面保存了,简单说,b能调用a里头的数了
危害:
泄露是指:内存占用越多,剩的越少
3.1 闭包的作用
1.函数累加器: