每天进步一点点

闭包

闭包是一个可以访问外部作用域的内部函数,即使这个外部作用域已经执行结束

作用域

作用域决定这个变量的生命周期及其可见性。当我们创建一个函数,就会生成一个新的作用域。
通过var创建的变量只有函数作用域
通过let和const创建的变量既有函数作用域,也有块作用域

词法作用域

指内部函数在定义的时候就决定了其外部作用域闭包的外部作用域是在其定义的时候已决定,而不是执行的时候

作用域链

每一个作用域都有对其父作用域的引用。当我们使用一个变量的时候,js引擎会通过变量名在当前作用域查找,若没有找到,会去父作用域查找,直到全局作用域

变量的生命周期

变量的生命周期取决于闭包的生命周期。被闭包引用的外部作用域中的变量将一直存活直到闭包函数被销毁。如果一个变量被多个闭包所引用,那么直到所有的闭包被垃圾回收后,改变量才会被销毁。

posted on 2021-10-03 18:09  柯蓝僧人  阅读(19)  评论(0编辑  收藏  举报