
1 silaike 2020-05-08 09:53:50 +08:00 via iPhone 报错的时候有区别,前者能追踪到函数名称 |
2 rabbbit 2020-05-08 09:59:50 +08:00 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-05-08 10:04:03 +08:00 闭包 |
4 LG3xFA6kpn88HxEW 2020-05-08 10:18:24 +08:00 var a = function factorial(n) { return n <= 1 ? 1 : n * factorial(n - 1) }; 为匿名函数命名,可以在这个函数内部递归调用自身提供一个访问的方式 |
5 zhw2590582 2020-05-08 11:08:17 +08:00 每次写到匿名函数,eslint 都会警告不要匿名,但有不想起名字,就用箭头函数代替了 |
6 noe132 2020-05-08 11:43:0 +08:00 > (function anonymous(){}).name < "anonymous" > (function (){}).name > "" |
7 AV1 2020-05-08 12:06:43 +08:00 可以引用自己实现递归调用,并且不会把函数名暴露给当前作用域。 |
8 julyclyde 2020-05-08 12:08:59 +08:00 后者很正经,但是很不 Javascript 风 |
9 CodingNaux 2020-05-08 12:22:35 +08:00 为啥会有这种问题.... |
10 azcvcza 2020-05-08 13:45:22 +08:00 具名函数可以在函数里进行递归调用;具名函数可以在函数栈报错时显示名字 恩不是 at anonymours (xxx.js 53) 来自 You don't know js |
11 lizz666 2020-05-08 16:22:23 +08:00 |
12 libook 2020-05-09 18:13:11 +08:00 有个问题,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”出了错。 |