我有下面的代码:
//anonymous function expression
var a = function() {
return 3;
}
//named function expression
var a = function bar() {
return 3;
}
那么,它们之间有什么区别? (技术,用法)
最佳答案
主要区别是
您可以检查函数名称(例如,堆栈跟踪更易读)
该函数可以递归
请注意,像
var fibo = function(n) {
return n<2 ? 1 : fibo(n-1) + fibo(n-2);
};
并不是真正的递归,因为它的主体会在调用时调用
fibo
绑定的任何对象(因此,如果稍后将fibo
分配给其他对象,它将不会调用自身)。版本号var f = function fibo(n) {
return n<2 ? 1 : fibo(n-1) + fibo(n-2);
};
相反,它实际上是递归的,并且无论以后绑定到什么
f
都会继续调用自身。关于javascript - 匿名函数表达式和命名函数表达式(JavaScript)之间有区别吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32473856/