JS中的闭包问题总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS中的闭包问题总结相关的知识,希望对你有一定的参考价值。
- 严格意义上的闭包,严格闭包通过栈内存不销毁,保护内部变量,而且下一级作用域可以访问内部变量
- 更严格意义上的闭包,函数可以在父函数外面调用父函数作用域的值
- 在函数执行的时候,函数体中有返回值,函数执行的作用域不销毁
- 调用了上一级栈内存的变量,并返回给函数外,造成了上一级作用域不销毁(栈内存)
- 缺点
- 会造成很多不销毁的栈内存,影响浏览器的性能
- 优点
- 保护内部变量不被外界所污染,内部变量也不污染外部变量
- 可以通过返回值访问内部变量的值
- 销毁的作用域
- 当函数执行完,如果没有返回值,供外面作用域调用则直接销毁
- 在函数内部的自执行函数,虽然调用了上级作用域的值,但是函数执行完作用域依然销毁
- 在我们的函数执行的返回值,紧跟着当前函数直接执行的时候,作用域也会销毁
- 产生第三方对函数内部变量有承接,赋值的时候,当前作用域不销毁,这种销毁时暂时不销毁
- 在绑定事件中的函数,函数的栈内存是永远不销毁的
- 函数和DOM形成映射,是操作DOM的时候方法,这时候的函数作用域是不销毁的
以上是关于JS中的闭包问题总结的主要内容,如果未能解决你的问题,请参考以下文章