在我參加的一個會議上,我被告知,在關於優化的會話中,在構造函數中做很多賦值和操作,或者在函數外部聲明變量是不明智的;因爲,編譯器並沒有通過任何有力的優化。
這會讓我相信最好在你的函數之外聲明你的變量,然後在初始化函數中分配它們,除非這些變量是作爲參數傳遞給構造函數的,並且你希望避免傳遞它們再一次。
package{
public MyClass {
private var myA1:Number; //declare here
public var myA2:Number; //declare here
public function MyClass(arg1:Number = 10):void{
myA1 = arg1;//assigns myA1 a Number passed into the constructor, or 10
init();
}
public init():void{
myA2 = 20; //assigns myA2 a value of 20
}
}
}
以及在谷歌搜索後,我發現這篇文章,似乎同意。
http://voices.yahoo.com/flash-actionscript-3-optimization-guide-part-1-4793274.html
請記住,你可能只想做事情一定的方式,使事情變得更容易爲你,再後來優化;因爲,剛剛完成它比風格imho更重要。
希望有所幫助。
'+ 1'保持構造函數儘可能輕量化是個好主意。我使用自己的框架,在大多數情況下完全省略構造函數,而是使用我創建的'construct()'方法。 – Marty 2011-12-22 00:26:24