如何将对象分解为参数名称

时间:2018-08-10 10:55:58

标签: javascript ecmascript-6

我在其他地方定义了许多看起来像这样的函数

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

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

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

}

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

编辑以添加:可以传递数百个函数,我试图避免对它们全部进行重构,但是似乎无法直接查找参数名称。但是我已经found this表示可以通过将函数分解为字符串来完成此操作。

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式访问对象的属性(例如“ params”) params.bar1或类似params["bar1"]的格式,如果您要的是,您可以使用Object.keys(params)获取属性的名称。

另请参阅https://www.w3schools.com/js/js_object_properties.asphttps://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Object/keys