最近在看senocular的AS3笔记,在AS3中的delete和as2中有些不一样
在as3里delete在类实例中只能作用于动态创建的属性,但是对类成员就不行了
as2中delete关键字可以适用于任何东西,但是在as3中只能删除动态创建的变量
[as]
// ActionScript 2
class DeleteVarClass {
public var myVar:Number;
function DeleteVarClass() {
myVar = 1;
trace(myVar); // 1
delete myVar;
trace(myVar); // undefined
}
}
[/as]
[as]
// ActionScript 3
package {
public class DeleteVarClass {
public var myVar:Number;
public function DeleteVarClass() {
myVar = 1;
trace(myVar); // 1
delete myVar;
trace(myVar); // 1
}
}
}
[/as]
as3中如果要让一个变量不再引用某个对象或值,应该将该变量设置为 null
myVar = null;
如果当一个对象没有被任何一个变量引用,垃圾回收器会将其标记为已删除并且最终会被从内存中删除。
呵呵,是该注意下delete在as3中的用法,我英语比较差,有些可能没有翻译准确,请看原文