我有一个多次调用函数的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一致?为什么或为什么不呢?
答案 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中。