说有一个班级
package
{
public MyClass
{
var myA:Number = 10 ; //<< initializing here
public function MyClass()
{
myA = 20; //<< initializing here
}
}
}
以上哪一项是正确的方法?
答案 0 :(得分:3)
在我参加的一个会议上,我在一次关于优化的会议中被告知,在构造函数中执行许多赋值和操作,或者在函数外声明变量是不明智的;因为,编译器不会通过任何有力的优化来放置这些部分。
这让我相信最好在你的函数之外声明你的变量,然后在初始化函数中分配它们,除非这些变量作为参数传递给构造函数并且你想避免传递它们试。
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更重要。
希望有所帮助。