代码之家  ›  专栏  ›  技术社区  ›  Student

ActionScript-3不能有多个构造函数?

  •  26
  • Student  · 技术社区  · 16 年前

        public function Shard() {
        }
    
        public function Shard(x:Number, y:Number, vx:Number, vy:Number, rotation:Number, spin:Number)
        {
          ...
        }
    

    我找到了第二个构造器:

    多个构造函数定义 在里面 代码。

    那么,ActionScript-3不能有多个构造函数?

    2 回复  |  直到 16 年前
        1
  •  33
  •   Patrick    16 年前

    不,同一函数不能有多个构造函数,也不能有不同的签名,但可以使用默认参数:

    public function Shard(x:Number=NaN, y:Number=NaN) {
      //...
    }
    

    然后你可以打电话 new Shard() 或 new Shard(100) 或 new Shard(100, 200)

    public function Shard(...args){
     if (args.length==0) {
       //...
     } else {
      //...
      var firstArg:Object=args[0];
      //...
     }
    }
    
        2
  •  12
  •   Gunslinger47    16 年前

    它甚至比这更广泛。AS3根本不支持 function overloading .

    您可以使用参数默认值模拟多个构造函数的外观和/或动态地将参数分配给不同的构造函数 init