Actionscript 3 AS3-我可以访问调用我的对象(或函数)吗?

Actionscript 3 AS3-我可以访问调用我的对象(或函数)吗?,actionscript-3,function,callback,Actionscript 3,Function,Callback,我对Python提出了同样的问题 现在我想知道这是否可以在AS3中完成 如果我有这样的东西: package { public class SomeClass { private function A():void { C() } private function B():void { C() } private function C():void { // who is the calle

我对Python提出了同样的问题

现在我想知道这是否可以在AS3中完成

如果我有这样的东西:

package
{
    public class SomeClass
    {
        private function A():void { C() }
        private function B():void { C() }

        private function C():void
        {
            // who is the caller, A or B ???
        }

        public function SomeClass()
        {
            A()
            B()
        }
    }
}
尽管设计或其他问题,这只是一个好奇的头脑的问题

注意:我希望能够访问调用者函数的实例,以便调用该调用者函数(如果我愿意)

注意2:这必须在不更改
函数C()
签名的情况下完成“与ActionScript的早期版本不同,ActionScript 3.0没有arguments.caller属性。要获取调用当前函数的函数的引用,必须将对该函数的引用作为参数传递。”


这是唯一可以做到这一点的方法,否则需要创建一个全局变量来告诉调用C的函数,确保它可以完成。你可以这样做

private function C():void
{
  var e:Error = new Error();
  var stack:String = e.getStackTrace();
  //analyze stack and find out which function called it.
}

这很难看,但它会起作用。

是的,我知道这一点,但请阅读注释:“我喜欢调用函数的实例”,使用堆栈,我只知道函数的名称。而不是对象或函数对象。一旦你有了这个名称,你就可以得到它。看这里:仍然是一样的,这样我可以访问方法名,但是如果该函数是公共的并且被其他对象调用呢?我如何通过调用我的对象调用函数?为此,我需要函数实例或对象(函数的所有者)实例和函数名。