码迷,mamicode.com
首页 > Web开发 > 详细

JS 闭包

时间:2019-03-22 00:15:21      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:环境   不能   影响   属性   其他   概念   作用域链   简单   全局   

概念

简单来说,就是函数包含函数,内部函数可以访问外部函数(包含函数)的属性和参数,而外部函数却无法访问内部函数的任何变量。创建闭包的常见方式,就是在一个函数内部创建另一个函数。

这里面涉及到执行上下文和作用域链的知识。当一个函数被调用时,会创建一个执行环境和相应的作用域链。内部函数不仅拥有自身的作用域链,还拥有外部函数的作用域及全局作用域。

由于闭包会携带包含它的函数的作用域,因此会比其他函数占用更多的内存。过度使用闭包会导致内存占用过多,内存无法释放,造成内存泄漏(被分配的内存既不能被使用,也不能被回收,从而影响性能,甚至导致程序崩溃)。
解决办法:闭包使用过后,将变量设置为null,解除对DOM对象的引用,顺利减少其引用数,确保内存正常回收。

JS 闭包

标签:环境   不能   影响   属性   其他   概念   作用域链   简单   全局   

原文地址:https://www.cnblogs.com/gaosirs/p/10569969.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!