JavaScript 的闭包是一个其主动发展的特性,也是一个被动发展的特性. 也就是说,一方面,JS 有了闭包能更好解决一些问题. 另一方面,JS 为了解决某些问题,而不得不使用闭包勉强来解决问题.
前者这里不讨论,如果 JS 闭包能更好的解决问题,当然使用闭包更好.
我讨论的是后者,是因为 JS 本身的限制,而不得不磕磕绊绊地用闭包来解决的问题,例如"变量只初始化一次"这样的需求.
常规的语言这样解决:
代码如下:
JavaScript 的闭包是一个其主动发展的特性,也是一个被动发展的特性. 也就是说,一方面,JS 有了闭包能更好解决一些问题. 另一方面,JS 为了解决某些问题,而不得不使用闭包勉强来解决问题.
前者这里不讨论,如果 JS 闭包能更好的解决问题,当然使用闭包更好.
我讨论的是后者,是因为 JS 本身的限制,而不得不磕磕绊绊地用闭包来解决的问题,例如"变量只初始化一次"这样的需求.
常规的语言这样解决: