he añadido un simple archivo de .js
a mi página que tiene algunos bastante mundano-tarea común tipo de funciones añadidas a los Object
y Array
prototipos.Prototipo Objeto en Javascript rompe jQuery?
A través de ensayo y error, he descubierto que la adición de cualquier función para Object.prototype
, sin importar su nombre o lo que hace provoca errores de Javascript en jQuery:
El culpable?
Object.prototype.foo = function() {
/*do nothing and break jQuery*/
};
El error que estoy recibiendo la línea 1056 de jquery-1.3.2.js
, en el attr: {} la función de declaración:
/*Object doesn't support this property or method*/
name = name.replace(/-([a-z])/ig, function(all, letter) {
return letter.toUpperCase();
});
Al parecer G.replace no está definido.
Si bien es evidente que hay algo que no estoy envolver mi cabeza alrededor de la creación de prototipos, estoy fracasando rotundamente a averiguar lo que es.
Para ser claro, no estoy buscando una solución, lo he manejado ... lo que estoy buscando es una respuesta a ¿Por qué?. ¿Por qué agregar una función a Object.prototype
rompe este bit de código?
Puede obtener un error más significativo si cambia al archivo jquery completo (no minificado). De esta forma, podrá ver con mayor claridad qué código está teniendo problemas. –
es un error conocido: http://dev.jquery.com/ticket/2721 –
@ El enlace de CrescentFresh está desactualizado. Actualización: https://bugs.jquery.com/ticket/2721 – WoodrowShigeru