扩展内建类

extends Array

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class PowerArray extends Array {
isEmpty() {
return this.length === 0;
}

// filter/map/... 等函数不再传递PowerArray
static get [Symbol.species] () {
return Array;
}
}

let arr = new PowerArray(1, 2, 3);
alert(arr.isEmpty()); // false

let filter_array = arr.filter(i => i > 1);
alert(filter_array.isEmpty()); //Error