debugging 在JavaScript中打印函数签名

kqlmhetl  于 2023-06-06  发布在  Java
关注(0)|答案(3)|浏览(461)

我有一个函数:

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

稍后我想在调试过程中看到函数的签名。
当我尝试console.log(fs.readFile)时,我得到[ FUNCTION ],它没有给予我任何信息。
如何获取函数的签名?

lc8prwob

lc8prwob1#

在函数上调用.toString()

$ node
> foo = function(bar, baz) { /* some code */ }
[Function: foo]
> foo
[Function: foo]
> foo.toString()
'function(bar, baz) { /* some code */ }'

或者使用像foo+""这样的快捷方式。

gpfsuwkq

gpfsuwkq2#

如果你所说的“函数签名”是指它定义了多少个参数,你可以用途:

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

所有函数都自动获得一个length属性。

1sbrub3j

1sbrub3j3#

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

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

DEMO http://jsfiddle.net/K7DMA/

相关问题