jestem sprawdzenie czy zmienna jest zdefiniowana, czy nie, a jeśli nie jest określona jednoznacznie Zamierzam zdefiniować go wykonując:„Zmienna” została użyta zanim została zdefiniowana
if (typeof(aVariable) == 'undefined') {
var aVariable = value;
}
Ponieważ zmienna jest nie zdefiniowany JSLint ostrzega, że jest używany przed zdefiniowaniem i właśnie tego chcę.
Jak mogę to przezwyciężyć?
Chcę, aby umożliwić definiowanie tych zmiennych wyraźnie to robi:
<script>
var aVariable = value;
</script>
<script src="myScript.js"></script>
Więc każdy, kto będzie zawierać ten skrypt może dostosować niektóre właściwości. Obawiam się, że nie mogę zmienić tej logiki, ponieważ jest już używana w setkach stron internetowych w ten sposób.
Przewiń w dół, aby uzyskać odpowiedzi/rozwiązania, ponieważ odpowiedziałem na własne pytanie, że przepełnienie stosu nie pokazuje tego. Nie przegap ich.
Czy dla rozwiązania 2 występuje kara za wydajność? Czy jakieś efekty uboczne? Przypuszczam, że nie byłbym w stanie zmienić globalnego foo? – Vanuan
Rozwiązanie 2 wydaje się mieć efekt uboczny: strona uległa awarii wkrótce po załadowaniu w przeglądarce Safari (na iOS 6.1.3), gdy plik JS miał wiersz 'var window = window || {}; '. Chromium (na Ubuntu 12.04) nie miało takiego problemu. Dziwne. –