Показать сообщение отдельно
  #1 (permalink)  
Старый 27.05.2011, 15:13
Аватар для DreamTheater
Профессор
Отправить личное сообщение для DreamTheater Посмотреть профиль Найти все сообщения от DreamTheater
 
Регистрация: 15.02.2011
Сообщений: 471

Расширение прототипа объекта
Имеется следующая функция:

Object.prototype.toArray = function() {

  var array = [];

  for (var key in this) {

    array.push(this[key]);

  }

  return array.slice(0, -1);

}


Как видите, последним действием я выбрасываю последний элемент, потому что туда попадает прототип. Есть ли более корректные пути реализации данной функции?

И второй вопрос:

for (var key in object) {

  // do something

}


Все замечательно работает, у всех объектов появился новый метод, однако если я работаю в цикле, то перебираются все элементы объекта + метод toArray, который по идее должен находиться в прототипе. Почему это происходит и как этого избежать?

Последний раз редактировалось DreamTheater, 27.05.2011 в 15:23.
Ответить с цитированием