匿名函数表达式和命名函数表达式的区别(JavaScript)
Different between anonymous function expression and named function expression (JavaScript)?
我有下面的代码:
//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中的立即调用函数表达式(IIFE)-传递jQuery
- 函数声明与函数表达式之间的性能差异
- 立即调用函数表达式(IIFE)相对于普通函数的优势
- 如何防止 JS 缩小删除命名函数表达式的名称
- Angularjs 与 coffeescript 函数表达式中断
- JavaScript 混乱中的函数表达式
- 从ES6中的函数表达式访问类作用域
- 提升作为数组项的匿名函数表达式
- Javascript Mocha测试-测试函数表达式中的函数表达式
- 函数中的JavaScript函数表达式
- Javascript闭包覆盖函数表达式
- 函数表达式的词法作用域
- 请解释一下“;立即调用函数表达式“;以及“;自调用匿名函数”;
- JavaScript 中的函数语句和函数表达式
- ng-class 的函数表达式在 ng-click 时被调用
- 如何创建名称和主体存储在不同变量中的 JavaScript 函数表达式
- Object.Prototype 方法和 IIFE(立即调用的函数表达式)中的“use strict”
- 全局范围内的函数表达式与函数声明的区别