Kha*_*yen 13 javascript garbage-collection memory-leaks memory-management
我有一些嵌套函数,如
var freak = function() {
var die = function() { ... }
die(this);
}
Run Code Online (Sandbox Code Playgroud)
据我所知,die
每次freak
调用时都会创建(分配)函数.
因此,如果freak
被调用很多时间,这意味着将浪费大量内存(假设die
没有使用来自freak
上下文的任何内容;换句话说,即使它只被分配一次并在多次调用之间共享,它也能正常工作freak
-这就是我浪费的意思).
我的理解是否正确?这是否意味着应该完全避免嵌套函数?
use*_*740 24
据我所知,
die
每次freak
调用时都会创建(分配)函数.
是.这是真的.创建一个新的函数对象.
因此,如果
freak
被调用很多时间,那意味着很多内存将被浪费[...]
对于一些非常小且通常无关紧要的"浪费"的价值.
JavaScript引擎现在效率很高,可以执行各种技巧/优化.
例如,只有函数对象(但不是实际的函数代码!)需要在内部"复制".
[...]这是否意味着应该完全避免嵌套函数?
号有没有 "浪费"的问题没有实际的显示,否则测试案例.这个成语(嵌套和匿名函数)在JavaScript中很常见,并且非常优化.
嵌套函数提供许多好处,包括自我记录代码,较小的自包含词法范围以及其他代码隔离/组织优势.
归档时间: |
|
查看次数: |
2062 次 |
最近记录: |