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

标签 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。有人可以解释两者之间的执行差异吗?

谢谢。

最佳答案

当你这样做时:

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

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

关于javascript函数名称与函数文字用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7181280/

相关文章:

javascript - 如何下载包含javascript代码查找结果的网站?

javascript - 用 puppeteer 操纵亚马逊

javascript - CSS3 百分比值不使用调整大小的视口(viewport),而是使用旧的视口(viewport)大小

javascript - 在 javascript 中使用二维数组并尝试从中读取值给出 "Uncaught TypeError: Cannot read property ' 0' of undefined"

JSP 文件中的 Javascript 语法检查不起作用

javascript - Angular 自定义焦点指令。聚焦表单的第一个无效输入

javascript - 如何在使用 jquery 单击一次后禁用链接

javascript - 避免逗号表达式和重复声明

javascript - 检测 `select` 中下拉选项列表的滚动?

针对数组的 Javascript "like"函数