Javascript的关闭是其主动开发的一个特点。这也是一种消极的发展特征。也就是说,JS有一个闭包可以更好地解决一些问题。另一方面,为了解决一些问题,JS不得不使用闭包来解决问题。

前者不在这里讨论,如果js闭包能更好的解决问题,当然闭包的使用也比较好。

我讨论后者,因为js本身是有限的,并且偶然遇到了一个封闭的包来解决这个问题,比如变量只在这个需求中初始化一次。

常规语言就是这样解决的:

复制代码代码如下所示:

类{

函数init(){

这个,n=0;

}

函数(){

这个;

还这个;

}

}

var obj =新课();



Javascript通常解决这个问题(使用闭包):

复制代码代码如下所示:

var obj = { {

函数(){()

var = 0;

返回函数(){

氮+;

返回N;

}

})

}



但我最好推荐这种方法(消除闭包):

复制代码代码如下所示:

函数类(){

var =;

自我= 0;

self.func =函数(){

自我+ ++;

回归自我;

}

}

var obj =新课();



由于具有更好的可伸缩性。当你需要在一个变量上实现不同的操作时,后者只需要定义一个不同的函数(即简单的线性扩展),而A(Bi Bao)是一个完整的重写(这就是为什么你经常听到单词重构)。