我想以自动方式从字符串中创建 JavaScript 中的函数对象,但我在参数方面有点挣扎。到目前为止,我能做的如下:
var objectStr = "function(x) { return x; }";
var myFunc = Function("x", "{ return x; }");
如果我做出一些假设,该函数将始终以“function(x)”开头,我可以这样做:
var objectStr = "function(x) { return x;}";
var funcBody = objectStr.replace("function(x)", "");
var myFunc = Function("x", funcBody);
这让我接近一种自动方法。我还可以将字符串“x”分配给一个值并将其作为我的参数传递。但是,我真的很想去一个可以提供以下内容的地方:
var objectStr = "function(x, y) { return x*y; }";
此时我想将参数 x 和 y 提取到一个字符串数组中。我确信我可以非常明智地使用正则表达式来做到这一点。
var parameters = [ "x", "y" ];
但问题是,我现在如何从我的参数数组中创建一个具有多个参数的函数?
编辑
想要这样做的原因是为回调生成一个函数。我无法控制这些参数的值。一个用于说明的 jQuery 示例(尽管这不是我正在使用的库)可能是:
// Define myFunc using approach above
// then somewhere later in 3rd party code an itterator block
// like below will call:
jQuery(data).each(function() {
myFunc(this);
}