180bpm
AS2의 값 전달, 참조 전달 본문
반응형
//code start
class test {
private var o:Object = { x:0, y:0, bool:false };
private var a:Array = [0, "a"];
private function test() {
trace(o.x + " / " + o.y + " / "+ o.bool);
trace(a[0] + " / " + a[1]);
changeValue(o);
changeArray(a);
var obj:Object = { y:200 };
var obj2:Object = { y:obj.y }; //200
var obj3:Object = obj; //201
o.y = obj.y;
trace(o.y); //200
obj.y++;
trace(o.y); //200
trace(o.x); //1
changeNumber(o.x); //1
}
private function changeNumber($value:Number):Void
{
$value++;
trace(o.x);
}
private function changeValue($data:Object):Void {
$data.x ++;
$data.bool = !$data.bool;
trace($data.x + " / " + $data.y + " / "+ $data.bool);
}
private function changeArray($array:Array):Void
{
$array[0]++;
$array[1] = "b";
trace($array[0] + " / " + $array[1] + " / ");
}
}
//code end
1. changeValue($data:Object)
함수의 파라메터가 Boolean, Number, String이 아닌것들 일 경우 참조.
2. obj2:Object = { y:obj.y }
대입 할때도 리터럴일경우엔 값 전달.
obj3:Object = obj; 이건 참조
반응형
Comments