JavaScript内部函数和性能

| 定义Clousre与全局作用域函数对运行时和内存有什么影响?
function a(){
      //functions (option A)
}
//functions(option B)
我了解选项A具有功能范围(关闭)的优势... 可以说我有1000个函数,这对运行时间和内存有何影响?     
已邀请:
        如果使用内部函数,则运行时必须为将来的任何调用分配并保存其上下文,并且每次调用包含它们的函数时都会发生这种情况。结果,可以方便地想象一下,声明一个内部函数就像构造一个对象一样,该对象的成员只是该函数周围的作用域中的变量。 如果您不经常执行此操作,则可能不会很糟糕,因为内存量与在堆上分配对象大致相同。 (在某些情况下,可以做一些聪明的优化来避免这种情况,例如,如果仅将函数传递给可以在本地堆栈空间中分配的调用堆栈,或进行一些内联​​等)。但是,在大多数情况下,它仍然是分配,因此您应该避免在繁忙的循环中使用太多的分配或创建许多内部函数。 因此,为回答您的问题,选项B通常会更快。但是,不要让这让你沮丧! 我最后的看法是,便捷内部函数所提供的功能完全超过了较小的运行时开销,我会说在方便的地方使用它们。如果发现这是性能瓶颈,请返回并对其进行优化。     
        性能 一个非常小的基准案例: #1内部功能:http://jsfiddle.net/bMHgc/ #2外部功能:http://jsfiddle.net/sAVZn/ 在我的机器上:(5000 * 1000次) #1-700毫秒 #2-80毫秒 记忆 他们几乎一样... 如果可能的话,我建议使用选项A,因为它可以使您的代码更整洁。     

要回复问题请先登录注册