| 
 Нестыковка при расширении класса Object Столкнулся с проблемой. Расширяю класс Object своими методами, дабы потом они были доступны для DOM объектов. Вот пример метода: 
Object.prototype.mymethod = function(options){
...
}
Далее, например, вызываю для какого-нибудь объекта DOM ( element.mymethod() ). Но вот проблема, в options мне нужно передать объект с параметрами {var:val ...}, однако на входе в .mymethod() я уже получаю дополнительные ключи с кодом этих самых prototype методов, т.е. вместо {var:val} получаю {mymethod:код ф-ции, var:val}. Я не могу понять, почему методы приклеиваются к объекту таким произвольным образом. Можно ли этого как-то избежать (кроме как отсеивать имена, совпадающие с методами)? | 
| 
 PRStudio, код функции mymethod сам добавляется потому что вы расширили прототип объектов и теперь при передаче объекта в нем автоматически присутствует эта функция | 
| 
 PRStudio, но это обходимая проблема 
Object.prototype.mymethod = function(options){
 for (i in options) {
  if ((i + '') == 'mymethod') continue;
  //здесь будут ваши свойства без mymethod
 }
}
 | 
| 
 Дзен-трансгуманист, ага расширение на сотни =), но я просто не поспел за вами и написал на скорую руку:) | 
| 
 Спасибо, а то я уже подумывал реально список методов составить и их вылавливать :) | 
| 
 Есть ещё одно решение: сделать метод mymethod неперечисляемым: 
Object.defineProperty(Object.prototype, "mymethod", {
  value: function(options) {
    ...
  },
  enumerable: false
});
 | 
| 
 Цитата: 
 Цитата: 
 | 
| 
 Цитата: 
 | 
| Часовой пояс GMT +3, время: 17:13. |