Standardmäßig umschließt JSFiddle den Code im window.onload
-Ereignis, so dass Sie dies tatsächlich ausführen:
Das bedeutet, dass a
lokal für diese Funktion ist, während this
immer noch auf das globale Objekt verweist ( window
). In der Chrome-Konsole erstellt var a
ohne die Wrapper-Funktion eine globale Variable, die erstellt und gespeichert wird als Eigenschaften für das globale Objekt und ist daher identisch mit window.a
/ this.a
.
Wenn Sie zu den JavaScript-Optionen gehen und eine der Optionen "nowrap" wählen, wird auch 5
in JSFiddle protokolliert:
Ich würde den Code auf diese Weise schreiben, damit er 'überall' funktioniert.
%Vor%Tags und Links javascript scope