0

在 JavaScript 中,我有一个带有函数名称的字符串和一个带有参数列表的对象。有没有办法可以调用该函数并将参数传递给它?

例如,在 PHP 中,我可以执行以下操作:

$class = "myClass";
$args = array(arguments to be passed....);
$refClass = new ReflectionClass($class);
$instance = $refClass->newInstanceArgs($args);

我知道这是一个类,但是在 JavaScript 中是否有类似的东西来调用函数并传递参数?

4

1 回答 1

1

首先,您必须检索函数的句柄(引用)。

这只有在两种情况下才有可能:

  • 你的函数生活在全球范围内

  • 您的函数/它的引用被分配给一个变量或一个对象的属性

之后,您可以使用Function.prototype.apply()函数:

functionReference.apply(window, args);

这是全局函数的完整示例:

function func1(msg) {
  alert(msg);
}

var funcName = 'func1';
var args = ["Hello World!"];

window[funcName].apply(null, args);
于 2013-09-17T14:35:13.450 回答