【问题标题】:What's this "function a/<()" in the developer console?开发者控制台中的“函数 a/<()”是什么?
【发布时间】:2016-04-02 15:19:34
【问题描述】:

在 Firefox 中使用开发者控制台时,我尝试这样做:

var a = b => c => c;

然后是这个:

a(1)

我预计结果是 function()(对应于 c =&gt; c),但结果却显示为:

function a/<()

这个表达是什么意思?这显然不是合法的 Javascript,因为 /&lt; 都不是函数名的有效字符。

使用函数的常规表示法也会发生同样的情况,即var a = function(b) { return function(c) { return c; } }

这是截图:

编辑:我尝试了以下

var a = b => c => d => d;
a(1)

结果是

a/</<()

这让我觉得这是一种鲜为人知的速记符号。

【问题讨论】:

  • 它返回 function c =&gt; c 就像在我的浏览器 (Chrome) 中一样?
  • 这也是 Firefox 内置控制台特有的,Firebug 不受影响。有趣的问题:)
  • ...但是(b=&gt;c=&gt;c)(1) 给出了预期的结果...确实很奇怪。
  • 不要忘记控制台输出不需要反映任何官方语言语义。我不会试图在其中找到太多的意义。可能只是一个显示错误。
  • 如果这看起来微不足道,请原谅我,但 b =&gt; c 究竟做了什么?

标签: javascript notation


【解决方案1】:

the relative issue on bugzilla 上的评论者指出它是匿名函数命名约定的一部分。

In particular,

  • a/b - 内部bvar a = function() { var b = function() {}; }
  • a&lt; - flags a "contributor" 或基本上是一些帮助函数,通过在其中匿名来为名为 a 的函数做出贡献。

所以a/&lt;() 表示在a 的主体中声明了一个匿名函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2021-10-01
    相关资源
    最近更新 更多