如果内部函数不使用外部函数的任何变量,那么每次调用外部函数时都会重新创建函数内部的函数吗?

时间:2013-07-14 19:14:53

标签: javascript performance function scope

例如,如果我有

function routine(n){
   function subroutine(n){
      return n+1;
   }
   return subroutine(n*n);
}

每次拨打subroutine时都会重新routine

然后,我应该使用

var routine = (function(){
   function subroutine(n){
      return n+1;
   }
   return function(n){
      subroutine(n*n);
   }
})();

代替?

2 个答案:

答案 0 :(得分:1)

是的,它已多次创建。您可以查看更多信息here

答案 1 :(得分:1)

是的,它会多次创建。

为什么你不能使用:

function routine(n){
   return function (n){
      return (n*n)+1;
   };
}

或者:

function routine(n){
   return (n*n)+1;
}

或者那只是一个例子?

相关问题