任何HAXE GC提示吗?

问题描述 投票:3回答:2

最近,我正在学习HAXE为Flash,和我有一些ActionScript 3的经验。

我注意到有一个delete操作AS3,有什么样的HAXE delete?大约是GC的delete?是否有内存管理HAXE新手任何提示?

actionscript-3 memory-management garbage-collection haxe
2个回答
6
投票

马库斯已经解释了delete运营商做什么。对于HAXE使用请参考this page

因此,等效HAXE的delete foo.buntyped __delete__(foo, "b")。如果你打算用它了很多,我建议你将它放入一个功能;)


10
投票

我真的不知道很多关于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,使其undefinedb的值但不一定是从内存中删除。如果别人引用相同的值,它很可能会留下来。因此,delete只删除引用,而不是实际值,因此不会使您能够强制垃圾收集。

© www.soinside.com 2019 - 2024. All rights reserved.