在阅读其他人的代码时,我多次看到这种功能声明。
var foo = function bar() {
console.log("Some text");
};
我得到了这个结果。
foo(); // "Some text"
bar(); // Uncaught ReferenceError: bar is not defined(…)
由于bar
未定义,我想知道写bar
的目的是什么,以及如果我省略bar
来写它的区别。但是,我想知道是否存在某种情况或人们为什么写这样的功能的原因。
我什么时候会写这样的功能?
答案 0 :(得分:1)
当您编写IDbCommandTreeInterceptor
时,您声明了一个名为var foo = function() {}
的变量,该变量具有匿名函数(没有名称的函数)。
当您编写foo
时,您声明一个名为var foo = function bar() {}
的变量,该变量具有名为foo
的函数。这对调试很有用。当您出现错误时,它会显示它在bar
中。
由于函数名仅在函数内可用,因此调用function bar()
会引发错误。