覆盖在ActionScript中扩展Array的类中的映射

时间:2012-07-03 21:05:25

标签: actionscript-3

只是为了好玩,我想覆盖Array并重新定义map

public dynamic class MagicArray extends Array {
  public override function map(f:Function, thisObject:* = null):Array {
    var result:Array = [];

    for (var i:int = 0; i < this.length; i++) {
      result.push(f(this[i]));
    }

    return result;
  }
}

我们收到此错误:Method marked override must override another method.

咦?

所以我删除了override关键字并再次尝试。现在,一切都很好。但是,如果我们尝试使用它:

var a:MagicArray = new MagicArray([1,2,3]);
a.map(function(x) { return x + 1; }); 

我们收到以下错误:

Error: Ambiguous reference to map.

那么这里发生了什么?如何覆盖map

1 个答案:

答案 0 :(得分:1)

您是否将扩展程序设置为动态,并且使用命名空间请参阅此处http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b8d829-7fde.html