Ale*_*mov 5 javascript memory performance closures
我想知道JavaScript闭包的内存占用量是多少?
这个数额取决于什么?
关闭内存消耗的第一个明显因素是它捕获的变量数量和它们的大小.
好的,我们假设我们有一个简单的闭包:
var counter = (function () {
var num = 0;
return function () {
return ++num;
}
}());
Run Code Online (Sandbox Code Playgroud)
需要多少内存?
如果很难说确切的数字,我想知道至少这些数字的大小.是10,100字节甚至更多?
JavaScript实现之间是否存在显着差异?
我希望这些问题的答案,尤其是一些数字,将有助于我和其他读者澄清:
在你需要的时候使用闭包是一种好的做法吗?
或者你应该小心使用它,并尽可能避免使用它,因为使用封闭物的开销可能超过它带来的好处.
换句话说,我希望我能够更好地了解哪些情况值得使用闭包,哪些不是.
编辑1:
为了解决@MaximillianLaumeister关于问题过于宽泛的评论,让我们重新说一下:
内存中哪些部分这样的闭包是由?它们相对于彼此有多大,也许绝对数量?它们在JavaScript引擎中是否相同?
从下面的评论中,部分应该是: