28

我有一个功能:

fs.readFile = function(filename, callback) {
    // implementation code.
};

稍后我想在调试期间查看函数的签名。

当我尝试时,console.log(fs.readFile)我得到了[ FUNCTION ].

那没有给我任何信息。

如何获得函数的签名?

4

3 回答 3

50

特别是在 node.js 中,您必须在记录之前将函数转换为字符串:

$ node
> foo = function(bar, baz) { /* codez */ }
[Function]
> console.log(foo)
[Function]
undefined
> console.log(foo.toString())
function (bar, baz) { /* codez */ }
undefined
> 

或使用类似的快捷方式foo+""

于 2013-09-26T07:57:49.543 回答
5

如果“函数签名”的意思是它定义了多少个参数,则可以使用:

function fn (one) {}
console.log(fn.length); // 1

所有函数都会自动获得一个长度属性。

于 2013-09-26T08:30:10.730 回答
3

我不确定您想要什么,但请尝试查看此小提琴的控制台日志,它会打印整个函数定义。我正在查看 chrome console.log 输出。

var fs = fs || {};
fs.readFile = function(filename, callback) {
  alert(1);
};
console.log(fs.readFile);

演示 http://jsfiddle.net/K7DMA/

于 2013-09-26T07:53:45.950 回答