如何在不使用原型的情况下获得Object / Array .prototype的功能?

时间:2014-04-21 18:06:09

标签: javascript jquery arrays prototype

好吧,所以我用一个愚蠢的举动阻止了自己,这个举动现在正在引起我正在使用的jQuery库的冲突,而且我应该说在阅读完之后我可能会打破更多。无论如何,我试图使用以下位:

Array.prototype.contains = function(v) {
    for(var i = 0; i < this.length; i++) {
        if(this[i] === v) return true;
    }
    return false;
};

Array.prototype.unique = function() {
    var arr = [];
    for(var i = 0; i < this.length; i++) {
        if(!arr.contains(this[i])) {
            arr.push(this[i]);
        }
    }
    return arr;
}

然而,为了获得数组的唯一值,最终导致jQuery的冲突在我的事业中打破了很多东西,那么我怎样才能绕过使用原型的禁止但美味的想法呢?特别是在这种情况下需要数组中的唯一值?

1 个答案:

答案 0 :(得分:1)

避免修改本机类型原型的常用方法是静态方法:

Array.unique = function( entity ) {
    // do your stuff
};

// example call
var unique = Array.unique( [1, 1, 2, 3] );

或者,更进一步,甚至做这样的事情

var Arrays = Arrays || {};
Arrays.unique = function( entity ) { /* … */ };

这样您就可以完全与内置Array分开。