2016-03-13 2 views
-2

Почему Object.prototype.values ломает приложение в совершенно другом месте? Даже если values изменено на myvaluesObject.prototype.values ​​ломает приложение

Object.prototype.values = function (obj) { 
    var vals = Object.keys(obj).map(function (key) { 
     return obj[key]; 
    }); 
    return vals; 
} 
+3

Почему вы добавляете метод Object.prototype, а затем * не * используете 'this' внутри метода? – nnnnnn

+0

Его работа отлично. Я только что проверил это на своей консоли. –

ответ

0

Вы не должны изменять собственный объект прототип, так как это может привести к поломке для в петле без hasOwnProperty фильтра и могут иметь другие побочные эффекты где-нибудь еще в вашем приложении или используемых библиотеках.

Лучшее изменение Object.prototype.values до Object.values и используйте его как Object.keys.

Смежные вопросы