JavaScript hace que sea fácil sobrescribir las propiedades y funciones del objeto global. Me gustaría encontrar una forma de verificar si la versión original de una propiedad global ha sido reemplazada.Compruebe si una propiedad/función global ha sido sobrescrita en JavaScript
considerar a alguien poner esto en su HTML:
<script type="text/javascript">
window.encodeURIComponent = eval;
</script>
<script type="text/javascript" src="myscript.js"></script>
Si MyScript.js llama a la función encodeURIComponent en alguna parte, y pasará a comportarse de forma impredecible. Entonces, ¿hay alguna manera de verificar dentro de myscript.js si alguien ha sobreescrito esa función antes de usarla?
Esta es una manera realmente inteligente y transversal de hacerlo. – sg3s
Gracias Stan. ¿También sabe cómo asegurarse de que la propiedad toString de 'eval' no se haya sobrescrito con algo como' function() {return "function encodeURIComponent() {[native code]}"; } '? –
en lugar de analizar y llamar a 'toString' simplemente puede hacer esto' window.encodeURIComponent.name' .. DE TODOS MODOS hay más método previo para lograr esto http://stackoverflow.com/a/10266791/474290 –