Допустим, я добавил несколько методов-прототипов в класс 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;
}
затем я создаю ассоциативный массив и пытаюсь перебрать его ключи:
var arr = new Array();
arr['One'] = 1;
arr['Two'] = 2;
arr['Three'] = 3;
for(var key in arr)
alert(key);
это возвращает пять пунктов:
-One
-Two
-Three
-containsKey
-containsValue
но я хочу (ожидаю?) Только три. Я подхожу к этому неправильно? Есть ли способ «спрятать» методы-прототипы? или я должен делать что-то по-другому?