Apache flex ActionScript:下次调用同一函数时,函数调用返回的对象是否发生更改?

Apache flex ActionScript:下次调用同一函数时,函数调用返回的对象是否发生更改?,apache-flex,actionscript,Apache Flex,Actionscript,我有一个AS3程序,可以多次调用函数。函数必须返回多个变量,因此我为函数创建了一个类来声明一个包含所有这些变量的对象。例如,下面是我的课堂: package { public class PER { public var N1:Number; public var N2:Number; public var a1:Array; public var a2:Array; } } 它包含两个数字和两

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

package
{
    public class PER
    {
        public var N1:Number; 
        public var N2:Number; 
        public var a1:Array;  
        public var a2:Array;  
    }
}
它包含两个数字和两个数组

在函数中,我有以下声明:

var newData:PER=newper()

假设调用程序调用函数,该函数使用以下方法将变量返回到数据_set1(其中数据_set1取决于输入变量arg1、arg2、arg3):

var数据集1:PER=函数名(arg1、arg2、arg3)

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

var数据集2:PER=函数名(arg4、arg5、arg6)

我的意图是,数据集1和数据集2是不同的(例如,未链接在一起)

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

我的问题是,假设数组是通过引用传递的,那么 在第二个功能中修改数据_设置1,使其与数据_设置2一致 打电话

没有

您的示例似乎没有使用数组,但是很难说,因为您没有给出实际运行的函数的示例

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中

感谢Flextras,“您没有编写任何代码使它们相互关联。”我所质疑的关系是,函数使用类PER返回变量。也就是说,newData.a1被返回到data_set1.a1中,等等。下一个函数调用newData.a1被返回到data_set2.a1中,等等。(您是否看到了与上面声明myNewArray的方式类似的情况?)是因为newData.a1在第一次退出函数时被销毁,类在后续调用中不再可能链接返回的数组吗?如果“关系I问题是函数使用类PER返回变量。”是问题的根源,然后,让我验证一个类的两个实例彼此绝对没有关系,而无需编写特定的代码以某种方式将它们联系起来。我看不出上面设置myNewArray的方式与您设置PER实例的实例变量的方式有什么相似之处,因为您没有共享设置PER实例的I实例变量的代码。什么是“新数据”?我认为要得到一个可靠的答案,你必须分享你的功能。谢谢Flextras
NewData
在函数中声明,如上述问题所示(例如
var NewData:PER=newper();
)。类似的情况是,使用相同的变量(例如,您的示例中的myNewArray或我的示例中的NewData.a1)来设置data_set1.a1和data_set2.a1。好吧,这可能是一个愚蠢的新手问题。只是尽量避免任何可能发生的“引用保存”错误。再次感谢。@ggkmath我现在看到新数据了,对不起。但是,您没有共享完整的功能。我不相信我能提供更多的帮助来评估你的代码是什么,而不需要你分享你想要评估的代码。
var myNewArray : Array = new Array()
data_set1.a1 = myNewArray;
data_set2.a1 = myNewArray;