-
闭包是什么 闭包的优点和缺点是什么?
函数内部 return 返回的是一个函数
优点:外部可以访问内部变量,变量不会被污染
缺点:变量不会被释放,造成内存泄漏
-
什么是作用域
作用域:变量的运行环境
-
什么是作用域链
[[scope]]:每个javascript函数都是一个对象,对象中有些属性我们可以
访问,但有些不可以,这些属性仅供javascript引擎存取,[[scope]]就
是其中一个。[[scope]]指的就是我们所说的作用域,其中存储了运行期
上下文的集合。即作用域决定了代码区块中变量和其他资源的可见性。
作用域与作用域之间 通过scope 连接 从而形成了作用域链
scope 是一个数组 存放所有使用的变量
-
如何解决闭包导致内存泄露呢?
可以利用垃圾回收机制中标记清除法:
在满足条件时:将引用函数的变量 赋值为null,做到零引用
立即执行函数:因为立即执行函数为零引用
-
从作用域的角度说一下 为什么闭包中外部可以访问内部的函数变量
外部 接收了 内部 return的函数,实际上变量存的是函数的指针,
return 返回的函数,是函数的子作用域,作用域之间可以
通过scope连接&#x