节点js函数名称并不总是定义的

时间:2017-01-03 16:48:49

标签: node.js function

我需要通过从对象访问函数来获取函数的名称。

通常这样的事情有效:

s='' s.splice.name

实际上它会返回slice,这是正确的,但如果我require('child_process').exec我得到''

有没有办法实现我需要的任务? 提前致谢

1 个答案:

答案 0 :(得分:2)

并非每个功能都必须有名称。

Node甚至对于某些匿名的未命名函数设置name属性非常聪明,但并不总是可行。

在Node repl:

中查看
> x = function x() {};
[Function: x]
> x.name
'x'
> y = function () {};
[Function: y]
> y.name
'y'
> z = () => {};
[Function: z]
> z.name
'z'
> w = (() => () => {})();
[Function]
> w.name
''

最后一个函数没有任何名称。并不是我以错误的方式访问它,只是Node根本不知道这个名字所以我没办法得到它。