Como determinar qual classe chamou de função
-
27-09-2019 - |
Pergunta
Estou trabalhando em um front end Flex no momento e tenho usado o Salsinha estrutura para passar mensagens/eventos por aí.
Eu queria saber se existe uma maneira simples de uma função (neste caso, o construtor de um evento) para obter uma referência ao objeto que o chamou?
Isso é para garantir que um certo evento que eu esteja definindo só possa ser despachado por uma classe especificada. Meu pensamento é verificar o chamador do construtor de alguma forma e lançar um erro se não for do tipo correto.
Estou aberto a sugestões de abordagens alternativas aqui, mas idealmente gostaria de manter o uso da abordagem de 'MessageHandler' da salsa, se possível.
Obrigado por ler caras ..
Solução
O Stack Trace funciona, mas você pode passar com muito mais facilidade uma referência ao chamador para a função e digite verificar.
function dispatchEvent(caller:*):void {
if(caller is SpecificClass) {
// then dispatch event
}
}
Outras dicas
Isenção de responsabilidade: não estou familiarizado com a salsa.
Ver Stack Trace em ActionScript 3. Você pode obter a função de chamadas no rastreamento da pilha.
Há uma coisa. O rastreamento da pilha só pode ser detectado no modo de depuração e, por meu conhecimento, não há como obter o chamador no modo de "produção".