Arrays .slice()成为“一个”意味着什么;浅克隆;?
ActionScript的数组和向量类都有一个slice()方法。如果未传递任何参数,则新数组或向量是原始向量的副本(浅克隆) “浅克隆”意味着什么?具体来说,两者的区别是什么Arrays .slice()成为“一个”意味着什么;浅克隆;?,arrays,actionscript,vector,slice,shallow-copy,Arrays,Actionscript,Vector,Slice,Shallow Copy,ActionScript的数组和向量类都有一个slice()方法。如果未传递任何参数,则新数组或向量是原始向量的副本(浅克隆) “浅克隆”意味着什么?具体来说,两者的区别是什么 Array newArray = oldArray.slice(); Vector.<Foo> newVector = oldVector.slice(); Array newArray=oldArray.slice(); 矢量。newVector=oldVector.slice(); 及 Array n
Array newArray = oldArray.slice();
Vector.<Foo> newVector = oldVector.slice();
Array newArray=oldArray.slice();
矢量。newVector=oldVector.slice();
及
Array newArray=oldArray;
矢量。新向量=旧向量;
??另外,如果向量的基类型不是Foo,而是像int这样简单且不可变的东西呢
更新:
下面的结果是什么
var one:Vector.<String> = new Vector.<String>()
one.push("something");
one.push("something else");
var two:Vector.<String> = one.slice();
one.push("and another thing");
two.push("and the last thing");
trace(one); // something, something else, and another thing
trace(two); // something, something else, and the last thing
var-one:Vector.=新向量。()
一、推(“某物”);
一、推(“其他东西”);
变量二:向量一、切片();
一、推(“和另一件事”);
推(“最后一件事”);
跟踪(一);//有些事,有些事,还有另一件事
痕迹(二);//有些事,有些事,还有最后一件事
谢谢!♥ 在您的上下文中,
.slice()
所做的只是复制一个向量,以便newArray
引用一个不同于oldArray
的对象,但这两个对象看起来是相同的对象。同样适用于newVector
和oldVector
第二段:
Array newArray = oldArray;
Vector.<Foo> newVector = oldVector;
two=one.slice()
在没有任何参数的情况下,创建一个包含所有当前内容的one
的新副本,并将其分配给two
。当您将第三项推到1
和2
时,您将附加到不同的Vector
对象。在您的上下文中,.slice()
所做的只是复制一个向量,以便newArray
引用与oldArray
不同的对象,除了两个看起来是一样的东西。同样适用于newVector
和oldVector
第二段:
Array newArray = oldArray;
Vector.<Foo> newVector = oldVector;
two=one.slice()
在没有任何参数的情况下,创建一个包含所有当前内容的one
的新副本,并将其分配给two
。当您将第三个项目推到1
和2
时,您将附加到不同的向量
对象。您的意思是旧数组
和新数组
的内容是相同的对象,但是引用是不同的?@Svetlana:当您使用.slice()
时,由oldArray
和newArray
表示的对象是不同的,但是如果它们是非基元类型,则其属性的引用可能会有所不同。如果简单地将一个指定给另一个,则两个都是对同一对象的不同引用。您的意思是oldArray
和newArray
的内容是相同的对象,但引用是不同的?@Svetlana:oldArray
和newArray
表示的对象在.slice()
时是不同的,但是,如果它们是非基本类型,则其属性的引用可能会有所不同。如果只是将一个对象指定给另一个对象,则两个对象都是对同一对象的不同引用。
something, something else, and another thing
something, something else, and the last thing