Array.Splice原型

时间:2012-04-11 15:42:59

标签: javascript arrays splice

我有一个addAfter和addBefore函数,它为数组添加了一个新元素。这个数组是我的存储,其他功能使用。基本上我存储定义表格单元格的低级对象。将元素添加到数组后,我必须在表格行中插入元素的html属性值。

有没有办法对我的数组进行原型设计来处理这两个操作,而不是每次添加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 个答案:

答案 0 :(得分:1)

您可以将其直接添加到对象本身:

bays.add = ...;