Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中打印函数签名_Javascript_Node.js_Debugging - Fatal编程技术网

如何在javascript中打印函数签名

如何在javascript中打印函数签名,javascript,node.js,debugging,Javascript,Node.js,Debugging,我有一个功能: fs.readFile = function(filename, callback) { // implementation code. }; 稍后,我想在调试期间看到函数的签名 当我尝试console.log(fs.readFile)时,我得到了[FUNCTION] 这没有给我任何信息 如何获取函数的签名?我不确定您想要什么,但请尝试查看此小提琴的控制台日志,它会打印整个函数定义。我正在查看chrome console.log输出 var fs = fs || {};

我有一个功能:

fs.readFile = function(filename, callback) {
    // implementation code.
};
稍后,我想在调试期间看到函数的签名

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

这没有给我任何信息


如何获取函数的签名?

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

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

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

$ node
> foo = function(bar, baz) { /* codez */ }
[Function]
> console.log(foo)
[Function]
undefined
> console.log(foo.toString())
function (bar, baz) { /* codez */ }
undefined
> 
或者使用快捷方式,如
foo+”

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

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

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

javascript中没有类型,因此签名不多。@Amberlamps我能知道这个函数在签名中有多少变量吗?虽然我们可以传递任意数量的签名。由于缺少类型,您无法读取签名ootb,但我认为这将有助于您构建一个帮助函数来检测签名。@AshishNegi您在使用Node.js吗?请参阅
fs.readFile
的文档:
functionname.toString().match(/function\s*(.*)\s*{/)[1]
没错,调用函数对象的toString()后代码可用