【ES6】在ES6中自定义数组
在ES6中是允许自定义类扩展基础类型的,因为这些基础类型是有构造函数的,在JS中类就是函数。
// 自定义数组
class myArray extends Array {
constructor() {
super();
}
}
let arr = new myArray();
arr.push(1);
console.log(arr);
重写Array的原生方法
ES6的Class支持重写父类方法,下面是一个简单的测试:
// 自定义数组
class myArray extends Array {
constructor() {
super();
}
// 重写Array的原生方法
push(item){
console.log("自定义子类重写的")
super.push(item);
}
}
let arr = new myArray();
arr.push(100);
console.log(arr);
创建类似GDScript的类型化数组
ES6中有类型化数组的概念,但类似于GDScript中的紧缩数组的概念,而且仅支持几种数字类型。
而我想创建的是类似Array[Type]
这种形式的。可以基于自定义Array类型,并在构造函数中传入类型,并重写全部方法的形式,获得一个通用的形式。