Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 Function.length和变量(…rest)参数长度[AS3]_Actionscript 3 - Fatal编程技术网

Actionscript 3 Function.length和变量(…rest)参数长度[AS3]

Actionscript 3 Function.length和变量(…rest)参数长度[AS3],actionscript-3,Actionscript 3,有没有办法确定(匿名)函数是否在ActionScript 3中定义了…(rest)参数?我知道有function.length属性,但它只计算显式定义的参数。如果您的意思是检查函数在调用时是否定义了参数,那么(据我所知)真正做到这一点的唯一方法是对函数类进行原型化,然后在新原型化的函数类中,捕获args数组参数并检查它是否为null。我不打算为您找出并编写所有这些代码(缺少时间),但这是一篇很好的文章,它应该全面地描述这个过程,并让您顺利完成 有一种方法可以确定函数是否定义了…rest参数,但您

有没有办法确定(匿名)函数是否在ActionScript 3中定义了…(rest)参数?我知道有function.length属性,但它只计算显式定义的参数。

如果您的意思是检查函数在调用时是否定义了参数,那么(据我所知)真正做到这一点的唯一方法是对函数类进行原型化,然后在新原型化的函数类中,捕获args数组参数并检查它是否为null。我不打算为您找出并编写所有这些代码(缺少时间),但这是一篇很好的文章,它应该全面地描述这个过程,并让您顺利完成


有一种方法可以确定函数是否定义了…rest参数,但您只能在函数体中确定。在函数体之外,函数有0个参数,如第一个跟踪输出所示。实际上,这个…rest参数是一个数组,它只在函数体中具有作用域。但是,一旦进入函数体,就可以对其进行测试,如第二个和第三个跟踪输出所示

    public function Test()
    {
        trace(doSomething.length);
        doSomething(7, 8, 9, 10);
    }

    public function doSomething(...numbers):void
    {
        if (numbers.length > 0) trace("Found the parameters!");
        for (var i:int = 0; i < numbers.length; i++) trace(numbers[i]);
    }

Output: 0    
Output: Found the parameters!    
Output: 7 8 9 10
公共功能测试()
{
微量(剂量测定法、长度);
剂量测定法(7,8,9,10);
}
公共函数doSomething(…数字):无效
{
如果(numbers.length>0)跟踪(“找到参数!”);
对于(var i:int=0;i
我不明白您所说的…rest是什么意思,但您可以像arguments[0]一样访问arguments数组,因此,如果您知道元素的长度,就可以获取元素。我特别想在函数外部通过一些光线反射来检测这一点。