1
silaike 2020 年 5 月 8 日 via iPhone
报错的时候有区别,前者能追踪到函数名称
|
2
rabbbit 2020 年 5 月 8 日
var a = function a() {
console.log(a) } var b = a a = 1 b() // ƒ a() ------------------ var a = function() { console.log(a) } var b = a a = 1 b() // 1 不过一般没人这么写,也就面试可能会考. |
3
xiaoriri666 2020 年 5 月 8 日
闭包
|
4
LG3xFA6kpn88HxEW 2020 年 5 月 8 日
var a = function factorial(n) { return n <= 1 ? 1 : n * factorial(n - 1) };
为匿名函数命名,可以在这个函数内部递归调用自身提供一个访问的方式 |
5
zhw2590582 2020 年 5 月 8 日
每次写到匿名函数,eslint 都会警告不要匿名,但有不想起名字,就用箭头函数代替了
|
6
noe132 2020 年 5 月 8 日
> (function anonymous(){}).name
< "anonymous" > (function (){}).name > "" |
7
AV1 2020 年 5 月 8 日
可以引用自己实现递归调用,并且不会把函数名暴露给当前作用域。
|
8
julyclyde 2020 年 5 月 8 日
后者很正经,但是很不 javascript 风
|
9
CodingNaux 2020 年 5 月 8 日
为啥会有这种问题....
|
10
azcvcza 2020 年 5 月 8 日
具名函数可以在函数里进行递归调用;具名函数可以在函数栈报错时显示名字 恩不是 at anonymours (xxx.js 53)
来自 You don't know js |
11
lizz666 2020 年 5 月 8 日
|
12
libook 2020 年 5 月 9 日
有个问题,function anonymous( ) 是不是就不算匿名函数了。。。
> (function(){haha})() Uncaught ReferenceError: haha is not defined at repl:1:13 > (function a(){haha})() Uncaught ReferenceError: haha is not defined at a (repl:1:15) > (a=function(){haha})() Uncaught ReferenceError: haha is not defined at a (repl:1:15) 注意看错误提示的内容是不一样的,后面两个会告诉你是“函数 a”出了错。 |