我在其他地方定义了许多看起来像这样的函数
export function foo(bar1, bar2, bar3, ...) {
// does stuff
}
在我正在处理的模块中,我同时传递了上面的函数和包含如下参数的对象:
// params = {
// bar1: bar1Value,
// bar2: bar2Value,
// bar3: bar3Value,
// ...
// }
function myFunc(foo, params) {
}
我需要以正确的顺序用参数调用func。它是一个对象,而不是数组,因此我不能依赖属性顺序,我需要将参数与函数的签名匹配。这可能吗?
编辑以添加:可以传递数百个函数,我试图避免对它们全部进行重构,但是似乎无法直接查找参数名称。但是我已经found this表示可以通过将函数分解为字符串来完成此操作。
答案 0 :(得分:0)
您可以通过以下方式访问对象的属性(例如“ params”)
params.bar1
或类似params["bar1"]
的格式,如果您要的是,您可以使用Object.keys(params)
获取属性的名称。
另请参阅https://www.w3schools.com/js/js_object_properties.asp和https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Object/keys