Какая разница, если инициализация значения в определении против конструктора - PullRequest
0 голосов
/ 22 декабря 2011

скажем, есть класс

package
{

 public MyClass 
 {

   var myA:Number = 10 ; //<< initializing here 

     public function MyClass()
     {
        myA = 20; //<< initializing here
     }

 }

}

Какой из вышеперечисленных является верным способом следовать?

1 Ответ

3 голосов
/ 22 декабря 2011

На конференции, на которой я присутствовал, во время сеанса об оптимизации мне советовали, что неразумно делать много присваиваний и операций в конструкторе или при объявлении переменных вне функций;поскольку компилятор не подвергает эти разделы какой-либо энергичной оптимизации.

Это заставило бы меня поверить, что лучше объявить ваши переменные вне ваших функций, а затем назначить их в функции инициализации, если только этипеременные были переданы конструктору в качестве параметров, и вы хотите избежать их повторной передачи.

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
   }
 }
}

Кроме того, после поиска в Google я нашел эту статью, которая, кажется, согласилась.

http://voices.yahoo.com/flash-actionscript-3-optimization-guide-part-1-4793274.html

Имейте в виду, что вы можете просто захотеть сделать что-то определенным образом, что облегчит вам задачу, а затем оптимизировать позже;ведь просто сделать это важнее стиля imho.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...