如何在javascript中打印功能签名

时间:2013-09-26 07:37:32

标签: javascript node.js debugging

我有一个功能:

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

稍后我想在调试过程中看到函数的签名。

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

这不会给我任何信息。

如何获得该功能的签名?

3 个答案:

答案 0 :(得分:26)

具体来说,在node.js中,您必须在记录之前将该函数转换为字符串:

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

或使用foo+""

之类的快捷方式

答案 1 :(得分:5)

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

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

所有函数自动获取长度属性。

答案 2 :(得分:3)

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

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

DEMO http://jsfiddle.net/K7DMA/