Ho il seguente codice nel mio file HTML:Perché viene chiamata la funzione? JavaScript/Window
<script type="text/javascript">
window.never = function() {
console.log('this function is never called');
}
(function(d, s, id){
var js, srjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "this.script.does.not.exist.js";
srjs.parentNode.insertBefore(js, srjs);
}(document, 'script', 'streamrail-jssdk'));
</script>
Vedere violino: http://jsfiddle.net/sebvaeja/
Guardando la console, si può vedere che window.never
funzione è in realtà chiamato ('questa funzione non è mai chiamato 'è scritto sulla console).
Durante il debug di questo con gli strumenti di sviluppo di Chrome, vedo nello stack di chiamata che il chiamante era la chiusura (prima riga: http://jsfiddle.net/sebvaeja/
).
Se cambio la non funzione per essere fuori dalla portata globale:
function never() {
console.log('this function is never called');
}
allora non è essere chiamato.
Qualcuno può spiegare perché la funzione window.never viene chiamata? Cosa sta provocando la chiamata? Immagino che abbia qualcosa a che fare con la funzione presente sull'oggetto della finestra, ma non riesco a vedere il ragionamento che sta dietro.
In poche parole, si è verificato un errore di sintassi. :) – isherwood
Anche questo è un duplicato ma non riesco a trovarlo. –
'var log = function() {console.log ('questa funzione è chiamata'); } (42) ' –