我想要一个通用的方法来找出所需的参数由任何javascript函数,包括本机的,但我无法找到一个。我已经看到了这个stackoverflow链接,但它只适用于我们定义的函数。toString()不告诉我们有关本机函数的函数参数,如window.setTimeout():
How to get function parameter names/values dynamically from javascript
我特别感兴趣的是GreaseMonkey方法,比如GM_setValue等,它们的行为类似,并且在与toString()一起使用时不显示参数(我想验证传递给我的方法是否有两个参数)
2条答案
按热度按时间bvjxkvbb1#
你不能这么做。
可以通过检查函数的
length
属性来检查函数接受多少个命名参数:或者你可以将函数体转换成字符串并解析文本。
但是,命名函数参数与必需参数没有任何关联。请考虑以下情况:
不要验证一个函数有两个参数,只需在测试中验证该函数的行为符合您的预期。但是,通常情况下,您应该只测试您刚刚得到的确实是一个函数,然后简单地调用它。使用您给予它的参数的责任应该在接收方(您刚刚调用的函数),而不是在调用方。
baubqpgj2#
原生函数是C中设计的函数。似乎要访问参数的名称,必须使用其他语言。在powershell或C#中,我们可以获得这些参数的类型。我很快就会回来,以获得更多信息,以获得C中原生JavaScript函数的完整接口。
Powershell代码示例: