我在别处定义了许多类似于下面这样的函数
export function foo(bar1, bar2, bar3, ...) {
// does stuff
}
在我正在处理的模块中,我被传递了上面的函数和一个包含如下参数的对象:
// params = {
// bar1: bar1Value,
// bar2: bar2Value,
// bar3: bar3Value,
// ...
// }
function myFunc(foo, params) {
}
我需要用正确顺序的参数调用func。它是一个对象而不是数组,所以我不能依赖属性顺序,我需要匹配参数和函数的签名。这可能吗?
编辑添加:有成百上千的函数可以传入,我正试图避免将它们全部重构,但似乎不可能直接查找参数名称。然而,我发现了这一点,这表明它可以通过将函数分解为字符串来实现。
您可以像params.bar1
或params[“bar1”]
那样访问对象的属性(如“params”),并且可以通过使用object.keys(params)
获得属性的名称,如果这是您所要求的。
另见https://www.w3schools.com/js/js_object_properties.asp和https://developer.mozilla.org/de/docs/web/javascript/reference/global_object/object/keys