【发布时间】:2015-05-04 12:26:27
【问题描述】:
我正在寻找 vanilla JavaScript 解决方案。
假设我有一个带有以下标头的函数:
generateEmail(firstName, lastname, provider)
我需要像这样运行它:
generateEmail("John","Smith","gmail.com");
我希望能够使用参数映射而不是位置参数来调用它,即
generateEmail({
"firstName":"John",
"lastname": "Smith",
"provider": "gmail.com"
});
我正在寻找一个已经编写好的解决方案来用 JavaScript 执行此操作,因为我有无限数量的函数,例如上面的 generateEmail 来处理。有这样的库吗?
我见过https://github.com/kilianc/node-introspect 处理函数自省(返回函数抽象参数信息)。但是缺少第二部分 - 将地图调用映射到位置调用。
请告诉我,这样的事情是否存在。
编辑:如果我没有说清楚:我不想修改原来的位置参数函数。我从可能会更新他的代码的外部提供商那里获得此类功能。我宁愿有一个包装器,它可以调用下面的原始函数,并在外面提供一个 map-argument API。
【问题讨论】:
-
您可以检查
firstName是否是一个对象,然后使用适当的参数再次调用generateEmail。 -
@GaurangTandon 这完全是我不需要需要的。我需要一个通用的包装函数来处理我写的东西。我可以自己写,但首先我想检查一下,如果这样的东西已经存在。
-
我会说使用 stackoverflow.com/questions/914968/… 和
.apply的组合这是可能的。 -
@EvanKnowles 我知道链接并且知道使用
.apply;主要是我知道如何写这样的东西,但我不喜欢重新发明轮子:) 我更喜欢使用现有的解决方案。
标签: javascript function dictionary syntax arguments