Onu*_*rım 2 rest arguments function actionscript-3
我测试了以下代码:
function aa(...aArgs):void
{
trace("aa:", aArgs.length);
bb(aArgs);
}
function bb(...bArgs):void
{
trace("bb:", bArgs.length);
}
aa(); //calling aa without any arguments.
Run Code Online (Sandbox Code Playgroud)
输出是:
aa: 0 //this is expected.
bb: 1 //this is not!
Run Code Online (Sandbox Code Playgroud)
当我将空参数(aArgs)传递给bb函数时; 它不应该返回0长度?好像函数bb将传递的aArgs视为非空/非null.
我在这里错过了什么?
任何帮助表示赞赏.问候..
它看起来像aArgs进入bb()函数将是一个空数组,但一个数组一点也不...我会说输出是预期的.虽然我得到了所需的输出,但我不确定如何格式化它...
更新1:
我想澄清一下.你拥有的基本上是一样的:
function aa(...aArgs):void
{
myArray:Array = aArgs;
bb(myArray);
}
function bb(...bArgs):void
{
trace("bb:", bArgs.length);
}
aa(); //calling aa without any arguments.
Run Code Online (Sandbox Code Playgroud)
如果你看到这个代码,你会期望bb:1是吗?
更新2:
这个线程:用数组填充(... rest)参数?看起来好像很有意义.它使用apply()函数将数组作为参数列表传入. http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/Function.html#apply()
小智 6
不知道这是否仍然相关,但你可以试试这个:
function aa(...aArgs):void {
var myArray:Array = aArgs;
bb.apply( this, myArray );
}
function bb(...bArgs):void {
trace("bb:", bArgs.length);
}
aa(); //calling aa without any arguments.
Run Code Online (Sandbox Code Playgroud)
基本上Function.apply是你的朋友.
归档时间: |
|
查看次数: |
9679 次 |
最近记录: |