У меня есть вопросы относительно области видимости переменных в Javascript. У меня есть серия скриптов на веб-страницах, загружаемых в разное время. Мне нужен глобальный объект с именем MyVar, например, чтобы он был доступен для всех. Я хочу избежать его переопределения, но я предполагаю, что в какой-то момент он должен быть определен первым скриптом. Мой вопрос: использует ли var MyVar = MyVar || {}
решение?
Спасибо
/**
* Script 1
*/
var MyVar = MyVar || {};
MyVar.config = {
x : 2,
y : 3
};
/**
* Script 2
*/
//is this correct?
var MyVar = MyVar || {};
//to which MyVar am I assigning the apple property?
MyVar.apple = 'red';
ОБНОВЛЕНИЕ
Отличные ответы, ребята, спасибо.
И, наконец, что делает второй оператор var, когда я повторяю var MyVar = MyVar || {};
во второй раз? Создает ли он новую переменную в глобальной области видимости с именем MyVar
, которой присваивается значение существующей переменной MyVar
?
Другие авторы правы, предполагая, что у меня эти скрипты загружаются синхронно в тегах <script>
, однако из-за разделения труда я создаю скрипты, а не контролирую, когда и как они загружаются, поэтому нужен надежный метод для создания/использования моего объекта MyVar
.
Спасибо
var MyVar = MyVar || {};
какvar MyVar = MyVar if it exists (and isn't equal to false or 0) , or a new object if it doesn't
. - person ic3b3rg   schedule 11.01.2013