Function.apply()

可用性

Flash Player 6。

用法

myFunction.apply(thisObject, argumentsObject)

参数

thisObject myFunction 应用到的对象。

argumentsObject 一个数组,其元素作为参数传递给 myFunction

返回

被调用函数指定的任何值。

说明

方法;指定将在动作脚本调用的任何函数内使用的 this 的值。此方法还指定要传递给任何被调用函数的参数。因为 apply() 是 Function 类的方法,所以它也是动作脚本中每个函数对象的
方法。

参数被指定为 Array 对象。如果在脚本实际执行前,无法知道要传递的参数的数量,那么这种方法通常很有用。

示例

下面的函数调用是等效的:

Math.atan2(1, 0)
Math.atan2.apply(null, [1, 0])

您可以构造一个包含输入入口字段的 SWF 文件,该字段允许用户输入要调用的函数名,以及要传递给该函数的零个或多个参数。如果按“调用”按钮,则将使用 apply 方法调用该函数,并指定相应的参数。

在此示例中,用户在名为 functionName 的输入文本字段中指定函数名。在名为 numParameters 的输入文本字段中指定参数数量。在文本字段中最多可指定 10 个参数,这些文本字段名为
parameter1parameter2,直到 parameter10

on (release) {
  callTheFunction();
}
...
function callTheFunction()
{
   var theFunction = eval(functionName.text);
   var n = Number(numParameters);
   var parameters = [];
   for (var i = 0; i < n; i++) {
      parameters.push(eval("parameter" + i));
   }
   theFunction.apply(null, parameters);
}