[英]flash as3 define variables before or in class constructor?
像之間有什么區別
package {
public class Myclass {
var txt:TextField = new Textfield();
function Myclass() {
}
}
}
和
package {
public class Myclass {
var txt:TextField;
function MyClass() {
txt = new TextField;
}
}
}
我知道,當您設置創建一個新對象時,將運行類構造函數,如下所示:
var object:Myclass = new Myclass();
在第二種方式中,這將創建新的TextField。
我的困惑是,在第一種方式中,何時創建TextField? 如果將類導入另一個類,是否會為TextField留出內存? 如果它是一個靜態變量怎么辦?
在實例化之前,不會分配內存,因此在這方面並不重要。
如果使用靜態變量,則該變量將占用內存,因為該內存未綁定到實例化的對象,而是類似於該類中的全局變量。
編輯:關於如何最好地構造和初始化注釋中的對象,從pkyeck進行了很好的說明: 在構造函數內部的AS3代碼中,該過程應該很慢-因此最好創建一個init()方法並在那里進行實例化以及所有構造函數內部的init()。 即時編譯器(JIT)並未優化構造函數中的代碼。 要使用JIT優化的代碼,可以從構造函數中調用函數。 然后,再次優化該函數中的代碼。 取自此處:je2050.joa-ebert.com/files/misc/as3opt.pdf – pkyeck
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.