Как объявить глобальную переменную в JavaScript?

Как я могу объявить глобальную переменную в JavaScript?

135
задан Michał Perłakowski 30 November 2016 в 15:53
поделиться

3 ответа

Если вам нужно сгенерировать глобальные переменные в производственном коде (чего следует избегать) всегда объявляйте их явно :

window.globalVar = "This is global!";

Хотя это возможно чтобы определить глобальную переменную, просто опуская var (при условии, что не существует локальной переменной с таким же именем), при этом генерируется неявный глобальный глобальный, что является плохим делом и может генерировать ошибку в строгом режиме .

214
ответ дан 23 November 2019 в 23:44
поделиться

Если это единственное приложение, в котором вы собираетесь использовать эту переменную, подход Феликса превосходен. Однако, если вы пишете плагин jQuery, рассмотрите «пространство имен» (подробности о кавычках позже ...), переменные и функции, необходимые для объекта jQuery. Например, в настоящее время я работаю над всплывающим меню jQuery, которое я назвал miniMenu. Таким образом, я определил «пространство имен» miniMenu в jQuery и помещаю туда все.

Причина, по которой я использую кавычки, когда я говорю о пространствах имен javascript, заключается в том, что они на самом деле не являются пространствами имен в обычном смысле. Вместо этого я просто использую объект javascript и помещаю все свои функции и переменные как свойства этого объекта.

Кроме того, для удобства я обычно разделяю пространство имен плагина на пространство имен i для вещей, которые должны использоваться только внутри плагина, чтобы скрыть это от пользователей плагина.

Вот как это работает:

// An object to define utility functions and global variables on:
$.miniMenu = new Object(); 
// An object to define internal stuff for the plugin:
$.miniMenu.i = new Object();

Теперь я могу просто выполнить $. MiniMenu.i.globalVar = 3 или $. MiniMenu.i.parseSomeStuff = function (...) {...} всякий раз, когда мне нужно сохранить что-то глобально, и я все еще держу это вне глобального пространства имен.

52
ответ дан 23 November 2019 в 23:44
поделиться

Вот базовый пример глобальной переменной, к которой могут обращаться остальные ваши функции. Вот вам живой пример: http://jsfiddle.net/fxCE9/

var myVariable = 'Hello';
alert('value: ' + myVariable);
myFunction1();
alert('value: ' + myVariable);
myFunction2();
alert('value: ' + myVariable);


function myFunction1() {
    myVariable = 'Hello 1';
}

function myFunction2() {
    myVariable = 'Hello 2';
}

Если вы делаете это в функции jquery ready (), убедитесь, что ваша переменная находится внутри функции ready () вместе с вашим другие функции.

15
ответ дан 23 November 2019 в 23:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: