JavaScript中消除闭包的一般方法介绍

前端之家收集整理的这篇文章主要介绍了JavaScript中消除闭包的一般方法介绍前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

JavaScript 的闭包是一个其主动发展的特性,也是一个被动发展的特性. 也就是说,一方面,JS 有了闭包能更好解决一些问题. 另一方面,JS 为了解决某些问题,而不得不使用闭包勉强来解决问题.

前者这里不讨论,如果 JS 闭包能更好的解决问题,当然使用闭包更好.

我讨论的是后者,是因为 JS 本身的限制,而不得不磕磕绊绊地用闭包来解决的问题,例如"变量只初始化一次"这样的需求.

常规的语言这样解决:

代码如下:

JavaScript 一般会这样解决(使用闭包):

代码如下:

但我更建议采用这种方法(消除闭包):

代码如下:

因为后者的可扩展性更好. 当你需要实现对一个变量的不同操作时,后一种可以只需要再定义一个不同的函数(也就是简单线性扩展),而前一种(闭包)则需要完全重写(这就是为什么你经常听到重构这个词的原因).

猜你在找的JavaScript相关文章