在ES6 / ES2015中轻松实例化分类阵列

时间:2015-07-30 23:34:10

标签: javascript ecmascript-6

我已经看过子类化数组的例子类似于:

class Scores extends Array {
  constructor(len) {
    super(len);
  }
}

var s = new Scores();  // alloc
s[0] = 1; // assign

是否可以保留通常的分配方式,即:

var s = new Scores([1,2,3]); // alloc + assign

另外,如何引用子类中的给定值?例如,要创建值的平均值?

  avg() {
    var sum = this.???.reduce((x, y) => x + y, 0);
    return sum / this.???.length;
  }

1 个答案:

答案 0 :(得分:1)

  

是否可以在保留通常的分配方式的同时进行分类

当然,你的构造函数可以做你想做的任何事情。 E.g

constructor(values) {
  super();
  this.push(...values);
}
  

另外,如何引用子类中的给定值?

由于this子类数组,您可以执行

avg() {
  var sum = this.reduce((x, y) => x + y);
  return sum / this.length;
}

请注意,子类化本机对象的支持还不是很好。