这个 "function a/<()" 在开发者控制台中是什么意思?

11

在使用Firefox开发者控制台时,我尝试做了这个操作:

var a = b => c => c;

然后是这个:

a(1)

我原本期望的结果是function()(对应于c => c),但实际上显示的是:

function a/<()

这个表达式的含义是什么?它显然不是合法的JavaScript,因为/<都不是函数名的有效字符。
使用常规的函数表示法也会出现同样的情况,例如:var a = function(b) { return function(c) { return c; } }
这里是一张屏幕截图: enter image description here 编辑:我尝试了以下内容。
var a = b => c => d => d;
a(1)

结果是

a/</<()

这让我认为这是某种较不常见的速记符号。


2
它在我的浏览器(Chrome)中返回了 function c => c,正如它应该的那样。 - adeneo
2
这也只适用于Firefox内置控制台,Firebug不受影响。有趣的问题 :) - Frédéric Hamidi
1
...但是(b=>c=>c)(1)给出了预期的结果...确实很奇怪。 - spender
2
不要忘记,控制台输出不需要反映任何官方语义。我不会试图在其中找到太多的意义。可能只是一个显示错误。 - Lye Fish
3
如果我理解的没错的话,b => c 表示一个函数,它将参数 b 映射到返回值 c - Adjit
显示剩余13条评论
1个回答

3
bugzilla上相关问题的评论中,评论者指出这是匿名函数命名约定的一部分。 尤其是
- `a/b` - `var a = function() { var b = function() {}; }` 中的内部 `b` - `a<` - 标记 `a` 为“contributor”或基本上是某个帮助函数,通过在其中匿名来为名为 `a` 的函数作出贡献
因此,a/<() 意味着在 `a` 的主体中声明了一个匿名函数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接