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でcompositionを使用して、Arrayを拡張するオブジェクトを作成します。

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 に答える