Javascript 嵌套函数性能
Javascript nested function performance
我有一些嵌套函数,例如
var freak = function() {
var die = function() { ... }
die(this);
}
据我所知,每次调用freak
时都会创建(分配)die
函数。
因此,如果freak
被调用了大量时间,这意味着将浪费大量内存(假设die
没有使用freak
上下文中的任何内容;换句话说,即使它只分配一次并在多个freak
调用之间共享,它也能正常工作 - 这就是我所说的浪费)。
我的理解正确吗?这是否意味着应该完全避免嵌套函数?
据我所知,每次调用
freak
时都会创建(分配)die
函数。
是的。这是真的。将创建一个新的函数对象。
因此,如果
freak
被调用了很多时间,这意味着将浪费大量内存 [...]
对于一些非常小且通常无关紧要的"浪费"价值。
JavaScript引擎现在非常高效,可以执行各种各样的技巧/优化。
例如,只有函数对象(而不是实际的函数代码!)需要在内部"复制"。
这是否意味着应该完全避免嵌套函数?
不。如果没有实际的测试用例显示其他情况,就没有"浪费"问题。这个习语(嵌套和匿名函数)在 JavaScript 中非常常见,并且针对它进行了很好的优化。
嵌套函数提供了许多好处,包括自记录代码、较小的自包含词法范围以及其他代码隔离/组织优势。
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 函数声明与函数表达式之间的性能差异
- 从自执行函数返回函数的Javascript性能命中率
- 性能惩罚JavaScript回调函数
- 在运行Javascript/jQuery中的函数之前,检查元素是否存在是否更具性能
- 为什么封装的Javascript函数有如此巨大的性能差异
- 测量JavaScript函数的内存使用情况、执行时间和性能
- 从性能的角度来看,函数声明与表达式
- 在节点 js 中编写命名函数的性能是否更高
- Javascript 函数性能
- Javascript 嵌套函数性能
- 函数和对象之间的差异,以及它如何影响性能
- JavaScript,连续的JS和AJAX函数会随着时间的推移降低页面性能
- 在 JavaScript 中将同一函数分配给多个变量时出现性能问题
- Javascript 递归函数性能下降
- 如何限制或限制此函数调用中的函数调用次数(以提高性能)
- Javascript:使用性能参数对函数进行原型设计
- 出于性能原因,我是否应该避免多次执行相同的函数声明
- 发出HTTP请求的Javascript函数的性能
- js javascript性能函数构造