我已经测试了以下代码:
function aa(...aArgs):void
{
trace("aa:", aArgs.length);
bb(aArgs);
}
function bb(...bArgs):void
{
trace("bb:", bArgs.length);
}
aa(); //calling aa without any arguments.
输出为:
aa: 0 //this is expected.
bb: 1 //this is not!
当我将空参数(aArgs)传递给bb函数时;
它不应该返回0长度吗?似乎函数bb将传递的aArgs视为非空/非空。
我在这里想念什么?
任何帮助表示赞赏。
问候..
最佳答案
看起来去bb()函数的aArgs将会是一个空数组,但仍然是一个数组...我要说的是输出是可以预期的。我不是很确定我该如何格式化以获得所需的输出...
更新1:
我想澄清一下。您所拥有的基本上与以下内容相同:
function aa(...aArgs):void
{
myArray:Array = aArgs;
bb(myArray);
}
function bb(...bArgs):void
{
trace("bb:", bArgs.length);
}
aa(); //calling aa without any arguments.
如果看到此代码,您会期望bb:1是吗?
更新2:
该线程:filling in (...rest) parameters with an array?看起来像是相关的。它使用apply()函数将数组作为参数列表传递。 http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/Function.html#apply()
关于actionscript-3 - AS3…(静止)参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/971475/