2008-11-06 47 views
5

当我在Flash调试器中,并且我保存了一些回调函数时,我可以看到函数有一个名为savedThis的属性,它非常有用,可以知道该回调函数来自哪里。访问savedThis函数中的属性

我想从代码访问该属性,但出于某种原因,我不能。

callback.savedThis将抛出一个错误,因为它找不到该属性,很可能是因为它是私人的。

于是,我就一个方法添加到功能类,会给我访问它:

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

但它给我同样的错误有关找不到财产,即使我可以看到它在调试器。 有没有办法访问它?

注意:我不刨生产代码中使用这个,我正在做一些类通过自动化的一些数据采集帮我调试,这将是令人难以置信的有用得到这个信息,而不必将代码添加到每个保存通知此对象的回调。

回答

0

通过使用'arguments.callee'属性,可以获取对调用函数的引用。
例如:


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

但我没有调用函数链接到它所属的对象的方式 – Turambar 2009-01-05 03:46:54