Action Script 3 中变量,引用,对象

ActionScript 3 中变量持有引用,指向要操作的对像。但和JAVA 不一样的是ActionScript 3的变量本身是不能持有值的。AS3中值类型的变量持有的是指向值类型的引用,引用类型的变量指向的是引用类型的引用。不同的是,值类型的数据是一种不变对象

 

既然,都是引用,为何表现出的行为会不一样呢?

原来,在AS3中,值类型数据的引用是一种叫做不变对象(immutable object).这种对象一旦被创建就不能被改变。一旦AVM发现一个不变对象的引用要改变这个不变对象的值,AVM(AS虚拟机)就会创建一个新的不变对象来接受新值。

                                             |

                                              |也就是说在不改变时,如果两个有相同值的植类型数据它们的引用对象是同一个,

                                               |这样,就可以在一些情况下大大节省内存了。

 

EG:

  var a:int = 1;

  a = a +1;

 

这个过程就有两个变对象创建。最终a 的引用和a最初的引用是两个不同的对象了。

 

不变对象的设计优点 : 1. 提高执行效率。  ps:这个问题上不是很懂!!!

                               2.节省内存空间。

 

 

 

 

 

 

你可能感兴趣的:(Flex)