提问者:小点点

如何将对象分解为参数名[重复]


我在别处定义了许多类似于下面这样的函数

export function foo(bar1, bar2, bar3, ...) {
  // does stuff
}

在我正在处理的模块中,我被传递了上面的函数和一个包含如下参数的对象:

// params = {
//   bar1: bar1Value,
//   bar2: bar2Value,
//   bar3: bar3Value,
//   ...
// }
function myFunc(foo, params) {

}

我需要用正确顺序的参数调用func。它是一个对象而不是数组,所以我不能依赖属性顺序,我需要匹配参数和函数的签名。这可能吗?

编辑添加:有成百上千的函数可以传入,我正试图避免将它们全部重构,但似乎不可能直接查找参数名称。然而,我发现了这一点,这表明它可以通过将函数分解为字符串来实现。


共1个答案

匿名用户

您可以像params.bar1params[“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