2008-11-06 30 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