// Coding AS3.0
// for in 문
var obj:Object = {a:1, b:2, c:3};
for (var i in obj)
{
trace (obj[i]);
}
trace("------------------")
// for each in 문
var obj1:Object = {a:1, b:2, c:3};
for each (var j in obj1)
{
trace (j);
}
// output
3
1
2
------------------
3
1
2
for each in operator는 속성 값에 바로 접근을 한다. 그러므로 속성에 대해서 알 필요가 없을 경우 사용하기 편리한 operator라고 볼 수 있다.
그럼 여기서 '속도 테스트'를 한번 해보자. for each in 문이 당연 빠르겠지만....
// Coding AS3.0
stage.addEventListener (MouseEvent.CLICK, onClick);
//
function onClick (e:MouseEvent)
{
trace ("## onClick");
//
var loop = 100000;
var obj:Object = {a:1, b:2, c:3};
//
var objStartTime = new Date().getTime();
for (var a:uint = 0; a<loop; a++)
{
for (var i in obj)
{
var temp1 = obj[i];
}
}
var objEndTime = new Date().getTime();
trace ("for in : delayTime = ", objEndTime - objStartTime);
//
trace ("------------------");
//
var obj1:Object = {a:1, b:2, c:3};
var obj1StartTime = new Date().getTime();
for (var b:uint = 0; b<loop; b++)
{
for each (var j in obj1)
{
var temp2 = j;
}
}
var obj1EndTime = new Date().getTime();
trace ("for each in : delayTime = ", obj1EndTime - obj1StartTime);
trace("")
}
// output
## onClick
for in : delayTime = 130
------------------
for each in : delayTime = 50
## onClick
for in : delayTime = 210
------------------
for each in : delayTime = 50
## onClick
for in : delayTime = 110
------------------
for each in : delayTime = 50
역시나 당연한 결과라 생각된다. for in 문에서 사용된 obj[i]는 '[] operator' 로서 계산을 해야하는 코딩이다. 속성의 값에 바로 접근을 하기 위해서는 for each in 문을 사용하는 것이 좋다.
// for in 문
var obj:Object = {a:1, b:2, c:3};
for (var i in obj)
{
trace (obj[i]);
}
trace("------------------")
// for each in 문
var obj1:Object = {a:1, b:2, c:3};
for each (var j in obj1)
{
trace (j);
}
// output
3
1
2
------------------
3
1
2
for each in operator는 속성 값에 바로 접근을 한다. 그러므로 속성에 대해서 알 필요가 없을 경우 사용하기 편리한 operator라고 볼 수 있다.
그럼 여기서 '속도 테스트'를 한번 해보자. for each in 문이 당연 빠르겠지만....
// Coding AS3.0
stage.addEventListener (MouseEvent.CLICK, onClick);
//
function onClick (e:MouseEvent)
{
trace ("## onClick");
//
var loop = 100000;
var obj:Object = {a:1, b:2, c:3};
//
var objStartTime = new Date().getTime();
for (var a:uint = 0; a<loop; a++)
{
for (var i in obj)
{
var temp1 = obj[i];
}
}
var objEndTime = new Date().getTime();
trace ("for in : delayTime = ", objEndTime - objStartTime);
//
trace ("------------------");
//
var obj1:Object = {a:1, b:2, c:3};
var obj1StartTime = new Date().getTime();
for (var b:uint = 0; b<loop; b++)
{
for each (var j in obj1)
{
var temp2 = j;
}
}
var obj1EndTime = new Date().getTime();
trace ("for each in : delayTime = ", obj1EndTime - obj1StartTime);
trace("")
}
// output
## onClick
for in : delayTime = 130
------------------
for each in : delayTime = 50
## onClick
for in : delayTime = 210
------------------
for each in : delayTime = 50
## onClick
for in : delayTime = 110
------------------
for each in : delayTime = 50
역시나 당연한 결과라 생각된다. for in 문에서 사용된 obj[i]는 '[] operator' 로서 계산을 해야하는 코딩이다. 속성의 값에 바로 접근을 하기 위해서는 for each in 문을 사용하는 것이 좋다.


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