Ich bin Überprüfung, ob eine Variable definiert ist oder nicht, und wenn es nicht explizit definiert ist, werde ich es definieren, indem Sie:‚Variable‘ verwendet wurde, bevor es definiert wurde
if (typeof(aVariable) == 'undefined') {
var aVariable = value;
}
Da die Variable ist nicht definiert JSLint warnt davor, dass es verwendet wird, bevor es definiert wird, und genau das möchte ich.
Wie kann ich das überwinden?
Ich möchte diese Variablen ermöglichen, definieren diese explizit tun:
<script>
var aVariable = value;
</script>
<script src="myScript.js"></script>
Also jeder, der dieses Skript enthalten wird einige der Eigenschaften anpassen können. Und ich fürchte, ich kann diese Logik nicht ändern, weil sie auf diese Weise bereits auf hundert Websites verwendet wird.
Scrollen Sie nach unten für die Antworten/Lösungen, weil ich meine eigene Frage beantwortet haben Stack Overflow zeigt es nicht auf. Achten Sie darauf, sie nicht zu verpassen.
Gibt es eine Leistungseinbuße für Lösung 2? Oder irgendwelche Nebenwirkungen? Ich nehme an, ich wäre nicht in der Lage, das globale Foo zu ändern? – Vanuan
Lösung 2 scheint einen Nebeneffekt zu haben: Die Seite stürzte kurz nach dem Laden von Safari (unter iOS 6.1.3) ab, wenn eine JS-Datei die Zeile 'var window = window || hatte {}; '. Chromium (auf Ubuntu 12.04) hatte solch ein Problem nicht. Seltsam. –