任何创建扩展数组的对象的方法

Any way to create a Object that extends Array?

本文关键字:对象 方法 数组 创建 扩展 任何      更新时间:2023-09-26

我用javascript创建了一个lexer,我现在使用数组来描述一系列项目,我现在看到了拥有自己的range对象的用途,这样我就可以正确地区分"数组"answers"范围数组",使其读起来很好。

那么,有什么方法可以创建一个与Array对象的跨浏览器兼容的子类吗?

还是一种更好/更简单的方法,只按原样使用数组,对于"范围数组",我只使用自己选择的属性标记数组?

类似于:

var myRange = [1,2,3];
myrange.isRangeObj = true;
//i would then use if(myRange.isRangeObj) to do specific range operations.
//However i still think myRange instanceof Range reads better

您可以使用这个:

Array.prototype.isRangeObj = false;

因此,您创建的所有数组都将具有属性isRangeObj

使用javascript中的composition创建一个扩展Array:的Object

function Range(arr) {
  this.arr = arr;
}
var myRange = new Range([1, 2, 3]);
if (myRange instanceof Range) {
    doSomethingWithRange(myRange.arr);
}