如何在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()后代码可用