首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript嵌套函数性能

Javascript嵌套函数性能
EN

Stack Overflow用户
提问于 2013-11-05 00:13:53
回答 1查看 2.8K关注 0票数 16

我有一些嵌套函数,如

代码语言:javascript
复制
var freak = function() {
    var die = function() { ... }
    die(this);
}

据我所知,每次调用die时都会创建(分配) freak函数。

因此,如果freak被调用了很多时间,这意味着大量内存将被浪费(假设die没有使用freak上下文中的任何内容;换句话说,即使只分配了一次,并在freak的多个调用之间共享--这就是浪费的意思)。

我的理解正确吗?这是否意味着应该完全避免嵌套函数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-05 00:22:06

据我所知,每次调用die时都会创建(分配) freak函数。

是。这是真的。创建了一个新的函数对象。

因此,如果freak被调用了很多时间,这意味着大量的内存将被浪费.

对于一些非常小和通常无关紧要的价值“浪费”。

如今,JavaScript引擎非常高效,可以执行各种各样的技巧/优化。

例如,只有函数对象(而不是实际的函数代码!)内部需要“复制”。

..。这是否意味着应该完全避免嵌套函数?

不是的。如果没有实际的测试用例,就不会出现“浪费”问题。这个成语(嵌套函数和匿名函数)在JavaScript中非常常见,并且非常适合。

嵌套函数提供了许多好处,包括自文档化代码、较小的自包含词法范围以及其他代码隔离/组织优势。

票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19779752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档