Доступ к сохраненному свойству в функции - PullRequest
5 голосов
/ 06 ноября 2008

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

Я пытаюсь получить доступ к этому свойству из кода, но по какой-то причине не могу.

callback.savedThis выдает ошибку, потому что не может найти свойство, вероятно, потому что оно закрытое.

Поэтому я попытался добавить метод к классу Function, который бы дал мне доступ к нему:

Function.prototype.getSavedThis = function()
{
    return this.savedThis
}

Но это дает мне ту же ошибку в том, что я не могу найти свойство, хотя я вижу его в отладчике. Есть ли способ получить к нему доступ?

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

1 Ответ

0 голосов
/ 16 ноября 2008

Вы можете получить ссылку на вызывающую функцию, используя свойство arguments.callee .
Например:


bar( arguments.callee );
public function bar( caller:Function ) : void { trace( caller ); }
...