javascript函数名称与函数文字用法

时间:2011-08-24 19:40:06

标签: javascript

测试部分评估功能时:

function partialEval(fn)
   {
      var sliceMethod = Array.prototype.slice; 
      if(arguments.length > 1)
      {
        var aps = sliceMethod.call(arguments, 1);
      }


      return function () {
         return fn.apply(this,aps.concat(  sliceMethod.call(arguments)  ));  
    };

    }




    var x= function add(a,b,c,d){
     console.debug(a +  " - " +  b +  " - " +  c +  " - " +  d);
     return a+b+c+d; 

    }

    var pa = partialEval(add, 1,2); // Query here
    var zz = pa(3,4);
    console.debug(zz);

调用partialEval(add,1,2)和partialEval(x,1,2)有什么区别? 我知道x是函数文字,使用x给出正确的结果。但是当我使用add作为函数名发送到partialEval方法时,输出结果为3.有人可以解释两者之间的执行差异吗?

感谢。

2 个答案:

答案 0 :(得分:3)

当你这样做时:

var x = function add(a,b,c,d){
  // code...
}

add应该只存在于函数内部(并引用自身)。在您需要使用x的功能之外,add将为undefined

答案 1 :(得分:0)

我相信命名函数是悬挂的,而函数文字则不是。

没有理由同时使用这两种类型。我通常使用匿名函数文字,因为在我看来它将它们映射为对象,它们是。