Показать сообщение отдельно
Старый 27.05.2009, 15:47
catyoshi вне форума Посмотреть профиль Отправить личное сообщение для catyoshi Найти все сообщения от catyoshi
  № 1  
Ответить с цитированием
catyoshi

Регистрация: Feb 2006
Сообщений: 56
Отправить сообщение для catyoshi с помощью ICQ
По умолчанию аналог self в классах AS3

Добрый день всем!

у меня возник такой вопрос:

есть ли аналог self в классах Action Script 3?

поясняю.
например, ключевое слово super используется для доступа к родительским методам и свойствам объекта или класса.

а ключевое слово self должно использоваться для доступа к сосбтвенным методам и свойствам. я понимаю, что в случаях объекта для этого есть ключевое слово this.
но дело в том, что для работы со статичным (static) методами и свойствами это клюевое слово не подходит (в AS3 ругается компилятор).

в документации по ООП для AS3 я ничего не нашел по этому вопросу.

в частности мне это нужно для реализации примерно такого кода:

Код:
public class MyClass {

  public static var instance:MyClass;

  public function MyClass () { /* some code here */ }

  public static function getInstance ( autoCreate:Boolean = false ):MyClass {

     if ( autoCreate && ! instance ) {
       instance = new self ();
     }

     return( instance );
  }

}
при этом функция getDefinitionByName меня здесь не спасет

Код:
var ClassReference:Class = getDefinitionByName( this ) as Class;
instance = new ClassReference ();
, т.к. естественно, что в статичном методе объекта this не существует, а self нет или он называется как-то иначе

нужно мне это, чтобы в конечном счете получить примерно это:
Код:
import MyClass;

MyClass.getInstance( true ).someMethod( /* list of vars here */ );


Последний раз редактировалось catyoshi; 27.05.2009 в 15:50.