![](/img/trans.png)
[英]From inside iframe want to get all iframe class name (each Iframe has a different class name)
[英]Is it possible to get the class or class name from inside a function?
我正在嘗試編寫調試工具,並且希望能夠獲得調用方的類名。 基本上是來電顯示。
因此,如果我有類似的方法,我想獲取類名稱:
public function myExternalToTheClassFunction():void {
var objectFunction:String = argument.caller; // is functionInsideOfMyClass
var objectFunctionClass:Object = argument.caller.this;
trace(object); // [Class MyClass]
}
public class MyClass {
public function functionInsideOfMyClass {
myExternalToTheClassFunction();
}
}
JavaScript或ActionScript3中是否有類似的東西? FYI AS3基於JS,並且在大多數情況下可以與JS互換。
出於調試目的,您可以創建一個錯誤,然后檢查堆棧跟蹤:
var e:Error = new Error();
trace(e.getStackTrace());
給你:
Error
at com.xyz::OrderEntry/retrieveData()[/src/com/xyz/OrderEntry.as:995]
at com.xyz::OrderEntry/init()[/src/com/xyz/OrderEntry.as:200]
at com.xyz::OrderEntry()[/src/com/xyz/OrderEntry.as:148]
您可以從此處解析“調用方”方法。
請注意,在某些非調試情況下, getStackTrace()
可能返回null
。
來自文檔 :
與以前的ActionScript版本不同,ActionScript 3.0沒有
arguments.caller
屬性。 要獲得對調用當前函數的函數的引用,必須將對該函數的引用作為參數傳遞。 可以在arguments.callee
的示例中找到此技術的示例。ActionScript 3.0包括一個新的
...(rest)
關鍵字,而不是arguments類,建議使用。
嘗試將Class
名稱作為參數傳遞:
班級代碼:
package{
import flash.utils.getQualifiedClassName;
public class MyClass {
public function functionInsideOfMyClass {
myExternalToTheClassFunction( getQualifiedClassName(this) );
}
}
}
外部代碼:
public function myExternalToTheClassFunction(classname:String):void {
trace(classname); // MyClass
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.