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