我有以下代码:
//anonymous function expression
var a = function() {
return 3;
}
//named function expression
var a = function bar() {
return 3;
}
那么,他们之间有什么不同? (技术,用途)
答案 0 :(得分: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
被绑定到什么地方,都会继续调用自己。