ActionScript 3.0中参数的传递方式有按值传递和按引用传递两种方式。在按值传递参数时,把实参的数据复制一份给形参,在按引用传递参数时,把实参引用地址传递给了形参。所以按值传递的参数在函数计算工程中不会影响到原来的实参。而按引用传递方式的参数则会受到函数内部操作的影响。原始数据类型int、uint、Number、Boolean、String的参数是按值传递的,而其他数据类型则是按引用传递的。以下示例代码中的函数使用了两种方式进行传递。
function test(s:String, o:Object):void
{
o["age"] = 4;
o["name"] = "DogAWang";
o["color"] = "blue";
s = "this is string B";
}
var obj:Object = {name:"DogHank", age:3, color:"red"};
var str:String = "this is string A";
trace("Befor test():");
trace(str);
for (var prop in obj)
{ trace(prop+"="+obj[prop]);
}
trace("*******************************");
trace("After test():");
test(str, obj);
trace(str);
for (prop in obj) { trace(prop+"="+obj[prop]); }
输出结果是:
Befor test(): this is string A
color=red
age=3
name=DogHank
*******************************
After test():
this is string A
color=blue
age=4
name=DogAWang
参考资料:
李方捷等. ActionScript 3.0开发技术大全. 第一版. 北京:清华大学出版社. 2009年6月. 64页