标签: javascript
这两个功能有什么区别;
var a = function () { console.log("hi"); } var b = function xyz() { console.log("hi"); }
当我调用这两个函数时,两者都给出相同的结果。那么在声明函数名称' xyz' ?
答案 0 :(得分:0)
第二种形式称为“命名函数表达式”。与普通函数表达式相比,它具有以下几个优点:
您可以递归调用命名函数 - 例如,执行:
f = function f() { f(); }; f();
...作品。
您可以找到更详细的信息here。
使用命名函数表达式也有一些缺点。 例如,执行f = function g() { ... }实际上会创建两个实体 - 函数f和g,这可能会造成混淆。 (参见评论)如果你不小心,还有一些复杂的范围,可能会导致错误。您可以找到更详细的信息here。
f = function g() { ... }
f
g