如何创建一个基于数组参数的函数

How to create a function with parameters based on array

本文关键字:数组 于数组 参数 函数 何创建 创建 一个      更新时间:2023-09-26

我有一个数组,用来表示函数的参数。

例如:

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]);