Глобальные объекты Javascript перестают работать после смены прототипа! - PullRequest
1 голос
/ 05 мая 2011

Не знаю, если мне не хватает чего-то очевидного, но когда я делаю что-то вроде ниже: -

Object.prototype.inherit = function(fromClass) {
  fromClass.apply(this, Array.prototype.slice.call(arguments, 1));

  for(var key in fromClass.prototype){
    if(typeof fromClass.prototype[key] == 'function')
        this.prototype[key] = fromClass.prototype[key];
  }
};

Тогда я больше не могу работать ни с какими объектами. Я всегда становлюсь неопределенным. Аналогично, когда я пытаюсь «внедрить» какой-либо метод в Array.prototype, массивы перестают работать! Я использую Firefox 4.0.1.

Я что-то упустил?

1 Ответ

1 голос
/ 05 мая 2011

ПОЖАЛУЙСТА, ПОЖАЛУЙСТА , ПОЖАЛУЙСТА , ПОЖАЛУЙСТА НЕ РАСШИРЯЙТЕ OBJECT.PROTOTYPE.

Спасибо.

Теперь перейдем к вашему вопросу, что вы имеете в виду, что вы больше не можете работать с объектами?Вы собираетесь разорвать циклы for-in, но если не считать этого, все еще должно работать.

...