最近,我正在学习HAXE为Flash,和我有一些ActionScript 3的经验。
我注意到有一个delete
操作AS3,有什么样的HAXE delete
?大约是GC的delete
?是否有内存管理HAXE新手任何提示?
马库斯已经解释了delete
运营商做什么。对于HAXE使用请参考this page。
因此,等效HAXE的delete foo.b
是untyped __delete__(foo, "b")
。如果你打算用它了很多,我建议你将它放入一个功能;)
我真的不知道很多关于HAXE,但在AS3的delete
运营商实际上并不会删除对象。你不能在所有的真力在AS3解构。所述delete
运算符用于删除提及一个动态对象的属性。例如:
var foo:Object {
a: "Hello, ",
b: "world!",
toString: function () { return a + b; }
}
foo.toString() // Hello, world!
这个匿名对象是动态的和属性可以被添加或移除。就像一个哈希表。现在考虑以下几点:
delete foo.b;
foo.toString(); // Hello, undefined
当删除时,foo
释放它的参考属性b
,使其undefined
。 b
的值但不一定是从内存中删除。如果别人引用相同的值,它很可能会留下来。因此,delete
只删除引用,而不是实际值,因此不会使您能够强制垃圾收集。