2012-04-11 7 views
0

私は配列に新しい要素を追加しaddAfterとaddBefore機能を持っています。この配列は、他の関数が使用する格納場所です。基本的に私はテーブルセルを定義する低レベルのオブジェクトを格納しています。要素がアレイに追加された後、私はその要素テーブル行のHTMLプロパティの値を挿入しなければなりません。Array.Spliceプロトタイプ

addAfterまたはaddBeforeを実行するたびに作業負荷を倍増させるのではなく、両方の処理を処理するために配列をプロトタイプ化する方法はありますか?ネイティブ配列のプロトタイプを乱すことはありませんか?

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(); 
    } 

答えて

1

を:

bays.add = ...; 
+0

okが、私は最終的に何を」です再度参照してください。 –