我已经看过子类化数组的例子类似于:
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;
}
答案 0 :(得分:1)
是否可以在保留通常的分配方式的同时进行分类
当然,你的构造函数可以做你想做的任何事情。 E.g
constructor(values) {
super();
this.push(...values);
}
另外,如何引用子类中的给定值?
由于this
子类数组,您可以执行
avg() {
var sum = this.reduce((x, y) => x + y);
return sum / this.length;
}
请注意,子类化本机对象的支持还不是很好。