使用命名函数表达式有什么意义?

这个问题在这里已经有了答案:

  • var functionName = function(){} vs function functionName(){} 31个答案
  • 为什么使用命名函数表达式 5个答案

  • 有些人喜欢这样做,因为如果发生错误,你的功能就有名字。 这主要是一个偏好问题,您经常遇到未命名函数的问题。

    您通常不会看到它在var声明中使用,而是在声明回调时:

    callbackFunction(function success() { ... }, function fail() { ... })
    

    这样你就知道哪个参数是哪个参数,它们被标记了,如果其中一个参数失败了,你就可以精确地指出哪个参数被打破。


    var b = function bar(){
       return 3;
    }
    bar()
    => bar is not defined
    

    标识bar仅在功能内部可用。 尝试

    var b = function bar() {
        console.log(bar);
    }
    b();
    

    为什么有人使用命名的函数表达式?

    允许引用未分配给可达或常量变量的函数表达式,例如用于IEFE中的递归。

    另外,在调试过程中,命名函数显示不同,例如在调用堆栈(跟踪)或断点列表中。 通常,您可以使用(命名)函数声明而不是函数表达式,另请参阅http://blog.niftysnippets.org/2010/03/anonymouses-anonymous.html。

    链接地址: http://www.djcxy.com/p/2839.html

    上一篇: What is the point of using a named function expression?

    下一篇: Why window.addEventListener does not work?