【发布时间】:2016-04-02 15:19:34
【问题描述】:
在 Firefox 中使用开发者控制台时,我尝试这样做:
var a = b => c => c;
然后是这个:
a(1)
我预计结果是 function()(对应于 c => c),但结果却显示为:
function a/<()
这个表达是什么意思?这显然不是合法的 Javascript,因为 / 和 < 都不是函数名的有效字符。
使用函数的常规表示法也会发生同样的情况,即var a = function(b) { return function(c) { return c; } }。
这是截图:
编辑:我尝试了以下
var a = b => c => d => d;
a(1)
结果是
a/</<()
这让我觉得这是一种鲜为人知的速记符号。
【问题讨论】:
-
它返回
function c => c就像在我的浏览器 (Chrome) 中一样? -
这也是 Firefox 内置控制台特有的,Firebug 不受影响。有趣的问题:)
-
...但是
(b=>c=>c)(1)给出了预期的结果...确实很奇怪。 -
不要忘记控制台输出不需要反映任何官方语言语义。我不会试图在其中找到太多的意义。可能只是一个显示错误。
-
如果这看起来微不足道,请原谅我,但
b => c究竟做了什么?
标签: javascript notation