首页 > js中如何获取一个函数的参数列表

js中如何获取一个函数的参数列表

在java或者php中,我们可以通过反射来获取一个函数(方法)的参数列表等具体信息,那么在js中呢?比如下面这这个函数

jsfunction test(a, b, c) {
    return a + b + c;
}

我如何获取test函数的参数列表呢?


Function.prototype.toString


好吧。。。。


function testArguments(argv1, argv2) {
    for (var i in arguments) {
        alert(arguments[i]);
    }
}

不知道你要找的是不是arguments这个内置列表.


sf好像不能发送私信,我就是想问一下:楼主你这个问题解决了吗?我百度到较为靠谱的方法就是在test.toString()中提取形参列表了,看了一下 王子亭 回答的源码好像也是这种方式。。问问楼主找到其他更为简单的方法了吗?


形参个数:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/length

形参名字(不建议,因为 JS 代码通常会压缩和混淆):https://github.com/goatslacker/get-parameter-names


js的函数并不在乎你参数的名字,要查参数名也没意义,它随时都可以变化。你只能从FUNCTION.length获取形参的个数。



如@kiinlam 所说,只需要用lenth获取参数个数就行了,
补充不是说js不在乎参数名字,几乎没有一门编程语言会在乎形参名字,严格点的编程语言会有类型检测,可以看到js它类型检测都不需要,和php有点类似。

【热门文章】
【热门文章】