JavaScript semplifica la sovrascrittura di proprietà e funzioni dell'oggetto globale. Mi piacerebbe trovare un modo per verificare se la versione originale di una proprietà globale è stata sostituita.Verificare se una proprietà/funzione globale è stata sovrascritta in JavaScript
consideri qualcuno mettere questo nella loro HTML:
<script type="text/javascript">
window.encodeURIComponent = eval;
</script>
<script type="text/javascript" src="myscript.js"></script>
Se MyScript.js chiama la funzione encodeURIComponent da qualche parte, sarà ora comportarsi in modo imprevedibile. Quindi c'è un modo per controllare all'interno di myscript.js se qualcuno ha sovrascritto quella funzione prima di usarla?
Questo è un modo davvero intelligente e cross-browser per farlo. – sg3s
Grazie Stan. Sapete anche come assicurarsi che la proprietà toString di 'eval' non sia stata sovrascritta con qualcosa come' function() {return "function encodeURIComponent() {[native code]}"; } '? –
invece di analizzare e chiamare 'toString' puoi semplicemente fare questo' window.encodeURIComponent.name' .. QUALUNQUE c'è un metodo più preciese per ottenere questo http://stackoverflow.com/a/10266791/474290 –