ActionScript3.0中的参数传递方式

Categories: 垃圾山; Tagged with: ; @ November 11th, 2008 21:34

对于ActionScript3.0而言, 函数提供两种参数传递方式: 值传递和引用传递,也就是我们常说的传值和传地址.如果通过值传递参数, 实际上在函数处理过程中,只改变副本的值, 对原先的值并没有改变. 如果是引用传递, 则直接传递变量本身, 这样在处理过程中可能会改变本身的值.

值传递[传值]

ActionScript3.0中的基本数据类型: Boolean, Int, Uint, Number, String都属于值传递.

如下:
var s:String = "liguoliang";
var s1:String = s;
s = "xx";
trace("s: " + s + " s1: " + s1); //s: xx s1: liguoliang

整个过程如下:
1. 创建一个对象1,通过s获得引用, 类型为String, 内容为"liguoliang";
2. 创建另外一个对象2, 通过s1获得引用, 类型为String, 内容为"liguoliang";
3. 创建另外一个对象3, 通过s引用, 而对象一将在下次垃圾收集时,被清除.

引用传递[传地址]

在ActionScript3.0,使用参数的值实际上是创建了一个参数的副本. 除了基本数据类型之外, 其他全部使用引用传递方式进行参数传递.

var a:Array = [‘one’, ‘two’];
var a1:Array = a;
a.push(‘three’);
trace("a: " + a + " a1: " + a1);  //a: one,two,three a1: one,two,three

过程如下:

1. 创建对象1, 通过1获得因哟哦那个, 类型为array, 内容为[‘one’, ‘two’];
2. 创建指向1的引用2.  1, 2 指向同一个数组.
3. 修改该数组.

<->



// Proudly powered by Apache, PHP, MySQL, WordPress, Bootstrap, etc,.