ActionScript:是一个函数调用返回的对象,下次调用相同的函数时会改变吗?

时间:2012-01-10 18:06:48

标签: flex actionscript

我有一个多次调用函数的AS3程序。该函数必须返回多个变量,因此我为该函数创建了一个类来声明包含所有这些变量的对象。例如,这是我的班级:

package
{
    public class PER
    {
        public var N1:Number; 
        public var N2:Number; 
        public var a1:Array;  
        public var a2:Array;  
    }
}

它包含两个数字和两个数组。

在函数内部,我有以下声明:

var newData:PER = new PER();

假设调用程序调用函数,该函数使用以下函数将变量返回到data_set1(其中data_set1依赖于输入变量arg1,arg2,arg3):

var data_set1:PER = function_name(arg1, arg2, arg3);

调用程序执行一些操作,然后再次调用该函数,但将变量返回到一个新的变量名称data_set2:

var data_set2:PER = function_name(arg4, arg5, arg6);

我的意图是data_set1和data_set2不同(例如没有链接在一起)。

我的问题是,假设数组是通过引用传递的,那么在第二次函数调用时是否会修改data_set1以与data_set2一致?为什么或为什么不呢?

1 个答案:

答案 0 :(得分:1)

  

我的问题是,假定数组是通过引用传递的,那么   在第二个函数上修改data_set1以与data_set2一致   调用

没有

您的样本似乎没有使用数组,但是很难说,因为您没有给我们提供您实际运行的函数的示例。

Why or why not?

data_set1和data_set2是两个完全独立的变量,彼此无关。你没有写任何代码来使它们相关。

也许您打算要求将data_set1和data_set2的a1和a2实例变量链接起来。答案是可能的。如果您这样做:

var myNewArray : Array = new Array()
data_set1.a1 = myNewArray;
data_set2.a1 = myNewArray;

然后,data_set1和data_set2的a1将指向同一个数组实例。因此,对myNewArray的任何更改都将反映在data_set1.a1和data_set2.a1中。