Как определить, какой класс вызвал функцию - PullRequest
0 голосов
/ 16 апреля 2010

В данный момент я работаю над интерфейсом Flex и использую фреймворк Parsley для передачи сообщений / событий вокруг.

Мне было интересно, существует ли простой способ для функции (в данном случае конструктора события) получить ссылку на объект, который ее вызвал?

Это сделано для того, чтобы определенное событие, которое я определяю, могло быть отправлено только одним указанным классом. Я думаю как-то проверить вызывающую функцию конструктора и выдать ошибку, если она не правильного типа.

Я открыт для предложений альтернативных подходов, но в идеале я хотел бы придерживаться подхода «MessageHandler» Parsley, если это вообще возможно.

Спасибо, что читаете, ребята ..

Ответы [ 2 ]

1 голос
/ 16 апреля 2010

Трассировка стека работает, но вы могли бы намного легче передать ссылку на вызывающую функцию и проверить ее.

function dispatchEvent(caller:*):void {
   if(caller is SpecificClass) {
      // then dispatch event
   }
}
0 голосов
/ 16 апреля 2010

Отказ от ответственности: я не знаком с Петрушкой.

См. трассировка стека в ActionScript 3 . Вы можете получить функцию вызова из трассировки стека.

Хотя есть одна вещь. Трассировка стека может быть обнаружена только в режиме отладки, и, насколько мне известно, нет способа вызвать вызывающего в "рабочем" режиме.

...