0

新しい要素を配列に追加する addAfter および addBefore 関数があります。この配列は、他の関数が使用する私のストレージです。基本的に、表のセルを定義する低レベルのオブジェクトを保存しています。要素が配列に追加された後、要素の html プロパティの値をテーブル行に挿入する必要があります。

ネイティブ配列のプロトタイプを台無しにすることなく、addAfter または addBefore のたびに作業負荷を 2 倍にするのではなく、両方の操作を処理するために配列をプロトタイプ化する方法はありますか?

var bays=[];

 addAfter: function (b, n) {
            for (var i = 0, ii, len = bays.length; i < len; i++) {
                ii = i + 1; if (ii == n) {
                    bays.splice(ii, 0, b);
                    var newCell = canvsTrBay.insertCell(ii);
                    newCell.outerHTML = b._html;
                };
            };
            this.build();
        }

次のようなことは可能ですか:

   bays.prototype.add=function(b,n,isAfter){

       for (var i = 0, ii, len = bays.length; i < len; i++) {
                    ii =(isAfter? (i + 1):(n>0?i-1:0); 
                     if (ii == n) {
                        bays.splice(ii, 0, b);
                        var newCell = canvsTrBay.insertCell(ii);
                        newCell.outerHTML = b._html;
                    };
                };
                this.build();
    }
4

1 に答える 1

1

オブジェクト自体に直接追加できます。

bays.add = ...;
于 2012-04-11T15:45:44.500 に答える