Имеется следующая функция:
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, который по идее должен находиться в прототипе. Почему это происходит и как этого избежать?