Javascript: cacher prototype méthodes pour la boucle?

Donc disons que j'ai ajouté quelques prototypes de méthodes de la classe Array:



Array.prototype.containsKey = function(obj) {
    for(var key in this)
        if (key == obj) return true;
    return false;
}

Array.prototype.containsValue = function(obj) {
    for(var key in this)
        if (this[key] == obj) return true;
    return false;
}

puis-je créer un tableau associatif et tenter de boucle par le biais de touches:



var arr = new Array();
arr['One'] = 1;
arr['Two'] = 2;
arr['Three'] = 3;

for(var key in arr)
   alert(key);

cela renvoie cinq éléments:

 -Un 
-Deux 
-Trois 
-containsKey 
-containsValue 

mais je veux attendre?) seulement trois. Suis-je en approchant de ce mal? est-il un moyen de "cacher" le prototype des méthodes? ou devrais-je faire quelque chose différemment?