Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переопределение метода у Array 
:(
    Опции темы
setnull
Дата 14.4.2010, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 3.7.2007

Репутация: нет
Всего: 1



Все здравствуйте!

Добавляю в класс Array свой метод

Код

Array.prototype.myMethod = function(){
........
}

После чего, если массивом пользоваться как ассоциативным, то myMethod попадает в перечисление ключей в конструкции
Код

for(key in myArray)


Как скрыть мой метод во множестве ключей?

Спасибо!!!

PM MAIL   Вверх
rabbitObject
Дата 14.4.2010, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 23.1.2007
Где: Беларусь

Репутация: нет
Всего: 1



Код

for (var k in myArray) {
    if (myArray.hasOwnProperty(k)) {
        // здесь твой метод не появится
    }
}



Это сообщение отредактировал(а) rabbitObject - 14.4.2010, 17:17
PM MAIL   Вверх
setnull
Дата 15.4.2010, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 3.7.2007

Репутация: нет
Всего: 1



спасибо.
а покрасивше никак, чтоб вообще метод и не перечислялся оператором in?
сам метод как-то пометить, по-другому объявить?
join и indexof, например, не попадают же изначально.
PM MAIL   Вверх
cha0t1k
Дата 15.4.2010, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 12.4.2010

Репутация: нет
Всего: нет



Как вариант написать свои методы итераторов, как сделали разработчики Prototype, и в самом методе уже фильтровать что не должно попадать в выдачу.
PM MAIL   Вверх
setnull
Дата 20.4.2010, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 417
Регистрация: 3.7.2007

Репутация: нет
Всего: 1



во-во-во...
а как его зовут и как это вообще сделать?
это в смысле _iterator_next() (как то там...) и _iterator_exception?
ведь если я в нем напишу 
Код

for(element in this)

оно же зациклится?

Добавлено @ 10:43
или я вообще его не буду реализовывать, а заверну его в фильтрующий метод?

Код

var prevCode =Array.prototype._iterator_next;
Array.prototype._iterator_next =functino(){
   var res;
   do{
      res=prevCode.call(this);
   }while(!this.isMyPrivatMemeber(res));
   return res;
}


Это сообщение отредактировал(а) setnull - 20.4.2010, 10:44
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0604 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.