Cuáles son los riesgos de extender Object.prototype?

Quiero ampliar Object.prototype, para admitir básicamente notificaciones en datos JSON y elementos html a través del marco de la interfaz de usuario.

Object.prototype.setValue = function(key,value){
   // this simply sets value as this[key] = value
   // and raises an event
   Binder.setValue(this,key,value);
};
Object.prototype.getValue = function(key){
   return Binder.getValue(this,key);
};

Sin embargo, en base a esta pregunta,Extending Object.prototype JavaScript y algunos otros, la gente dice que debemos evitar extender Object.prototype, en cambio, cualquier otro tipo está bien.

Si no hago esto, entonces mi código se hace más grande, por ejemplo

window.myModel.setValue("currentStatus","empty");

tendrá que escribirse como,

Binder.setValue(window.myModel,"currentStatus","empty");

¿Quiero saber qué saldrá mal si uso estos métodos? ¿Causará que jQuery se comporte inesperadamente? He visto una vez que la solicitud ajax de jQuery también invoca métodos prototipo (ya que hacen referencia a funciones para el manejo de eventos).

¿Cuáles son otros efectos secundarios de esto? Sé que falla para (var x en obj), pero sobre todo podemos usar obj.hasOwnProperty, eso debería ayudar ¿no?

Respuestas a la pregunta(4)

Su respuesta a la pregunta