ActionScript 3: почему вы опускаете новое ключевое слово при создании экземпляра пользовательского событияDispatcher? - PullRequest
2 голосов
/ 16 августа 2011

Я сейчас читаю Библию Actionscript 3, и автор показывает пример, в котором создается пользовательский класс eventDispatcher.Когда класс позже используется в коде, он называется так:

//Thermometer is a custom eventDispatcher that extends the eventDispatcher class.
var thermometer:Thermometer = Thermometer(event.target); //why no new keyword?

Я новый программист, и мне было любопытно, может кто-нибудь объяснить, как это работает?Почему опущено новое ключевое слово?Когда вы опускаете ключевое слово new в классе, который расширяет другой класс, это просто вызов конструктора суперкласса (eventDispatcher)?

1 Ответ

7 голосов
/ 16 августа 2011

Это не создание нового экземпляра, а приведение .

Это означает, что свойство target объекта события приведено классом Event как Object, и, таким образом, чтобы сообщить компилятору, что цель на самом деле является экземпляром класса Thermometer, оно приведенов этом стиле.Вы также можете написать это так:

var thermometer:Thermometer = event.target as Thermometer;

Эти два значения по сути означают одно и то же, но при использовании редактора, который поддерживает предложение / завершение кода для пользовательских объектов, предпочтение отдается записи Class(something), поскольку она будетвключите редактор для предоставления предложений на основе вашего актерского состава.

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