如何创建一个基于数组参数的函数
How to create a function with parameters based on array
我有一个数组,用来表示函数的参数。
例如:var params = ['name', 'age', 'email'];
,该信息由返回该数组的另一个端点创建。从这个数组中,我想创建一个这样的函数:
function (name, age, email) {
//...
//my custom code
return result;
}
正如你所看到的,我想自动创建函数,并使用每个数组元素作为该函数的参数。
有没有办法在不使用eval
的情况下实现这一目标?
似乎new Function('name', 'age', 'email', 'fn body')
也不能在飞行中生成。
Thanks in advance
var a = Function.apply( {}, ["name", "age", "email", "return email;"] );
/*function anonymous(name,age,email) {
return email;
}*/
a(1,2,3);
//3
与eval
相比,这没有什么具体的好处,你想做的事情可能会以不同的方式完成,而不需要在代码中对字符串进行评估
您可以使用.apply()
。确保函数体是数组的最后一个成员。
Function.apply( null, your_array );
如果您想调用带有参数数组的函数,请使用apply
。例如:
function foo(a, b, c) {
alert(a + b + c);
}
foo.apply(null, [1, 2, 3]);
相关文章:
- 在对象上迭代以验证它是否's键存在于数组中
- 如何创建独立于数组更新的组件列表
- 仅当项目没有't存在于数组中
- 如何将函数应用于两个数组的第 n 个元素(数组的数组)
- 检查值存在于数组位置
- 如何检查值是否存在于数组的对象中
- Javascript强制数组的行为类似于数组
- 如何将子字符串应用于数组中的每个字母
- 检查元素是否存在于数组中,而不遍历它
- Mootools每个函数只适用于数组中的最后一个基金
- 如何将类应用于数组中段落标记中的所有单词
- 将隐藏应用于数组中的第一个元素
- 对对应于另一个数组的数组的值求和
- 将方法应用于数组中的单个元素-jquery/javascript
- 检查键存在于数组中
- 将逐位运算符应用于数组的值
- 检查变量是否存在于数组的数组中
- 使用javascript Push到数组,只要项目不存在于数组中
- 如何将自定义排序应用于数组
- Javascript- removeEventListener不应用于数组,从之前的addEventListener添加