【问题标题】:Change output of function object to state its name更改函数对象的输出以声明其名称
【发布时间】:2017-09-10 14:39:10
【问题描述】:

我正在尝试在 Javascript 中进行一些基本的 lambda 演算,并且我使用 Node 作为 REPL。我定义了身份和模拟鸟组合器,并以身份组合器作为输入运行模拟鸟组合器。

I = f => f
M = f => f(f)
M(I)

以恒等组合器作为输入的模仿鸟组合器产生恒等组合器。最后一行给出以下输出。

[Function]

但在这种情况下,如果它输出类似以下内容会更有用。

[Function: I]

这样我可以看到正在打印的函数。我在这个 youtube 视频中看到了这一点:https://www.youtube.com/watch?v=3VQ382QG-y4

有人知道如何实现吗?

【问题讨论】:

标签: javascript node.js read-eval-print-loop


【解决方案1】:

较新版本的 node.js 已经这样做了(至少 v6+,可能更早)。如果您不想升级,则可以定义一个检查方法,node.js 在检查时将使用该方法:

Function.prototype.inspect = function () {
  return "[Function: " + this.name + "]";
}

【讨论】:

    猜你喜欢
    • 2013-12-15
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多