代码之家  ›  专栏  ›  技术社区  ›  Chunky Chunk

ActionScript-接收调用函数或构造函数的名称?

  •  0
  • Chunky Chunk  · 技术社区  · 14 年前

    远景:是否可以从被调用函数中获取调用函数或构造函数的名称?是否可以确定线程的前一个函数?

    我想从构造函数中调用一些setter函数,并让setter函数确定是否是构造函数调用了它们。

    public function Constructor(myNumber:Number)
         {
         this.myNumber = myNumber;
         }
    
    public function set myNumber(value:Number):void
         {
         myNumberProperty = value;
    
         //if constructor called this, return;
         //else do some other stuff;
         }
    
    2 回复  |  直到 14 年前
        1
  •  1
  •   Aurel Bílý    14 年前

    liveDocs的报价:

    与以前版本的ActionScript不同,ActionScript 3.0没有arguments.caller属性。若要获取对调用当前函数的函数的引用,必须将对该函数的引用作为参数传递。这种技术的一个例子可以在arguments.callee的例子中找到。

    在AS2.0中。。。不幸的是,如果在AS3.0中完成,它会抛出一个错误。

        2
  •  0
  •   lucian.cioroga    14 年前

    try
    {
        throw new Error();
    }
    catch (e:Error)
    {
        // parse this for the constructor name
        trace(e.getStackTrace());
    }
    

    这是为了检测函数调用从何而来。。。

    我仍然会支持您的解决方案(设置标志),因为它更面向对象,而且在性能方面可能更快。