0

我在 javascript 中创建了一个词法分析器,现在我使用数组来描述一系列项目,我现在看到使用自己的 Range 对象,这样我就可以正确区分“数组”和“范围数组”一种读起来很好的方式。

那么有什么方法可以创建一个非常跨浏览器兼容的 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
4

2 回答 2

1

在 javascript 中使用组合来创建一个扩展数组的对象:

function Range(arr) {
  this.arr = arr;
}

var myRange = new Range([1, 2, 3]);

if (myRange instanceof Range) {
    doSomethingWithRange(myRange.arr);
}
于 2013-02-21T11:24:35.313 回答
1

你可以使用这个:

Array.prototype.isRangeObj = false;

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

于 2013-02-21T11:40:36.957 回答