gpt4 book ai didi

javascript - 如何查找原生 Javascript 函数的参数

转载 作者:行者123 更新时间:2023-12-03 10:42:13 24 4
gpt4 key购买 nike

我想要一种通用的方法来找出任何 javascript 函数(包括 native 函数)所需的参数,但我找不到。我看过这个 stackoverflow 链接,但它仅适用于我们定义的函数。 toString() 没有告诉我们有关 window.setTimeout() 等 native 函数的函数参数:

How to get function parameter names/values dynamically from javascript

我对 GreaseMonkey 方法(例如 GM_setValue 等)特别感兴趣,它们的行为类似,并且在与 toString() 一起使用时不显示参数(我想验证传递给我的方法是否有两个参数)

最佳答案

你不能这样做。

您可以通过检查函数的 length 属性来检查函数接受的命名参数数量:

(function testFn (arg1, arg2) {}).length // Will be 2

或者您可以将函数的主体转换为字符串并解析文本。

但是,命名函数参数与所需参数没有任何关联。考虑以下因素:

function testFn (arg1, arg2) {
arg1 = arg1 || 'some default'
arg2 = arg2 || true
}

// Both work fine
testFn() // No args passed
testFn('customValue', false) // Args passed

function anotherFn () {
var arg1 = arguments[0] // Discouraged! Just an example
arg1.toString() // Do stuff with a required arg1 argument
}

// This will throw at you!
anotherFn()

无需验证函数是否有两个参数,只需验证该函数在测试中的行为是否符合您的预期。不过,一般来说,您应该只测试您刚刚获得的确实是一个函数,然后简单地调用它。使用您提供给它的参数的责任应该由接收者(您刚刚调用的函数)确保,而不是由调用者负责。

关于javascript - 如何查找原生 Javascript 函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28722238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com