首页 > js中什么时候用闭包?

js中什么时候用闭包?

比如一个值,需要通过比较复杂的程序计算出来,但也不常用到,但后面也会偶尔用到,这时候就用闭包么?
求大神指点,现在知道闭包是什么,但完全不知道为什么要用闭包。


仅仅一个值没必要使用闭包,一个变量就够了。闭包这东西,你多看看别人的例子应该能总结出来。闭包一个经典的例子不就是循环绑定事件吗,你真正明白了吗?


闭包最大的作用就是面试的时候考智商的,js里作用域就是一个闭包,你要真的用那种什么防止污染把一个值存在闭包里花的要命,你觉得实用?可读性高?你要还写一堆注释,否则别人怎么理解?


闭包最重要的一个作用就是把某些变量隐藏起来,让外面的程序不能直接访问。只要不是为了这个目的的闭包都可以取消。当然有时候为了组织代码,也会用闭包来进行一下封装,给代码分段,毕竟如果不用模块管理库的话,就会把很多模块都写在一个文件里,看起来确实痛苦。


既然这个值偶尔会用到,就说明这个值会在不定的情况下使用,那么这个值的状态就需要维护。然后再看这个值所在的作用域,如果这个变量属于全局的上下文,那么就可以通过全局变量来维护。反之就适合通过闭包来维护。从封装的概念来说,大部分情况是不推荐定义过多的全局变量,因为会出现变量污染。

【热门文章】
【热门文章】