// Coding AS3.0
//
argArrFunc (1,2,3);
//
function argArrFunc (a:int, ... args):void
{
var leng:int = args.length;
for (var i:uint = 0; i<leng; i++)
{
trace (args[i]);
}
}
// output
2
3
상당히 편리해진 기능 ... args. 이놈은 앞에 선언과는 별도로 index 0을 잡는다. 이전 버전에서는 'a'의 값이 index 0이 되었지만 위와 같이 선언함으로서 몇번째 부터 arguments가 되는지 선언을 해주면 그만이다.
이전 버전에는 for문으로 2번째면 2번째부터 루핑시켜서 배열로 만들어 apply() 시켰는데 이제는 아래와 같은 예문 처럼 바로 보내면 된다. 참 편리하게 되었다.
// Coding AS3.0
//
testArgsFunc (5, 5, callbackFunc, 1, 2, 3);
//
function testArgsFunc (a:int, b:int, func:Function, ... args):void
{
trace ("## testArgsFunc");
//
var sum:int = a + b;
trace ("sum = ", sum);
func.apply (this, args);
}
function callbackFunc (... args):void
{
trace ("## callbackFunc");
//
var leng:int = args.length;
for (var i:uint = 0; i<leng; i++)
{
trace (args[i]);
}
}
// output
## testArgsFunc
sum = 10
## callbackFunc
1
2
3
//
argArrFunc (1,2,3);
//
function argArrFunc (a:int, ... args):void
{
var leng:int = args.length;
for (var i:uint = 0; i<leng; i++)
{
trace (args[i]);
}
}
// output
2
3
상당히 편리해진 기능 ... args. 이놈은 앞에 선언과는 별도로 index 0을 잡는다. 이전 버전에서는 'a'의 값이 index 0이 되었지만 위와 같이 선언함으로서 몇번째 부터 arguments가 되는지 선언을 해주면 그만이다.
이전 버전에는 for문으로 2번째면 2번째부터 루핑시켜서 배열로 만들어 apply() 시켰는데 이제는 아래와 같은 예문 처럼 바로 보내면 된다. 참 편리하게 되었다.
// Coding AS3.0
//
testArgsFunc (5, 5, callbackFunc, 1, 2, 3);
//
function testArgsFunc (a:int, b:int, func:Function, ... args):void
{
trace ("## testArgsFunc");
//
var sum:int = a + b;
trace ("sum = ", sum);
func.apply (this, args);
}
function callbackFunc (... args):void
{
trace ("## callbackFunc");
//
var leng:int = args.length;
for (var i:uint = 0; i<leng; i++)
{
trace (args[i]);
}
}
// output
## testArgsFunc
sum = 10
## callbackFunc
1
2
3


::: 사람과 사람의 교감! 人터넷의 첫 시작! 댓글을 달아주세요! :::