位置: 编程技术 - 正文
推荐整理分享javascript中闭包(Closure)详解(javascript闭包的作用),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:javascript中闭包的定义,javascript中的闭包,javascript闭包原理,javascript中闭包的一个常见问题,javascript闭包的作用,javascript中闭包的一个常见问题,javascript中闭包的一个常见问题,javascript闭包运行原理,内容如对您有帮助,希望把文章链接给更多的朋友!
在javascript中,函数可看作是一种数据,可以赋值给变量,可以嵌套在另一个函数中。
我们把上面第二段代码稍微修改下:
看出差别了吗,如果理解不了代码执行结果,请看上一篇博文,关于javascript作用域和作用域链的讲解。
上面这段代码中变量n是全局变量,随时可能被重新赋值,而无需通过fun函数的调用。为了让变量n不受污染,或者说是减少全局变量的污染,我们需要把n放到函数中作为局部变量。
如果我们可以在全局中直接调用son函数,那么便可以达成想要的效果。son函数现在是作为局部变量存在,要想在全局中访问,一般有两种方法:
一种是赋值给全局变量
另一种是使用return返回值
上面的son()函数就是闭包,某种意义上所有函数都可以看作闭包。闭包就是可以访问外层函数作用域的变量的函数。
还是上面那段代码,我们稍微修改下,再看看执行结果,这是因为每次执行fun()函数时都会初始化变量n。
闭包的好处是减少全局变量,避免全局污染,可以将局部变量保存在内存中。但这既是优点又是缺点,一段代码中如果闭包过多,有可能造成内存泄露。由于闭包中局部变量不会被垃圾回收机制回收,所以需要手动赋值为null(关于内存泄露,后期单独开专题)
js判断当前页面用什么浏览器打开的方法 最近做很多HTML5的项目,很多页面会通过微信微博等SNS分享出去。在分享页面上提供公司APP的下载。但是在很多应用的浏览器中,点击下载链接无法下载
js判断当前页面在移动设备还是在PC端中打开 本文实例讲解了js判断当前页面在移动设备还是在PC端中打开的详细代码,分享给大家供大家参考,具体内容如下varbrowser={versions:function(){varu=navigator.userA
js针对ip地址、子网掩码、网关的逻辑性判断 因为要做静态地址配置的js校验,找了好多资料发现网上都是关于ip,mask的有效性检查,没有ip,submask,gateway的逻辑性判断,自己写下代码供需要的人
标签: javascript闭包的作用
本文链接地址:https://www.jiuchutong.com/biancheng/384720.html 转载请保留说明!友情链接: 武汉网站建设