Как я могу объявить глобальную переменную в JavaScript?
javascript
global-variables
танцовщик
источник
источник
window
доступно только в браузерах. Не могли бы вы отредактировать свой ответ, чтобы он работал во всех средах? См. Как получить глобальный объект в JavaScript?Если это единственное приложение, где вы собираетесь использовать эту переменную, подход Феликса превосходен. Однако, если вы пишете плагин jQuery, рассмотрите «пространство имен» (подробности о кавычках позже ...) переменных и функций, необходимых для объекта jQuery. Например, я сейчас работаю над всплывающим меню jQuery, которое я назвал miniMenu. Таким образом, я определил «пространство имен»
miniMenu
в jQuery и помещаю все туда.Причина, по которой я использую кавычки, когда говорю о пространствах имен javascript, заключается в том, что они на самом деле не являются пространствами имен в обычном смысле. Вместо этого я просто использую объект javascript и помещаю все свои функции и переменные как свойства этого объекта.
Кроме того, для удобства я обычно разделяю пространство имен плагина с
i
пространством имен для вещей, которые должны использоваться только внутри плагина, чтобы скрыть его от пользователей плагина.Вот как это работает:
Теперь я могу просто сделать это
$.miniMenu.i.globalVar = 3
или$.miniMenu.i.parseSomeStuff = function(...) {...}
когда мне нужно что-то сохранить глобально, и я все еще держу это вне глобального пространства имен.источник
delete $.miniMenu
. Это нормально?delete $.miniMenu
.РЕДАКТИРОВАТЬ Вопрос о JavaScript, ответ о jQuery, что не так. Это старый ответ, со времен, когда jQuery был широко распространен.
Вместо этого я рекомендую понять области и замыкания в JavaScript
Старый, плохой ответ: с помощью jQuery вы можете просто сделать это, независимо от того, где находится объявление:
И будет доступен везде. Я использую его для создания быстрых галерей изображений, когда изображения распространяются в разных местах, например так:
Совет : запустите весь этот код в консоли на этой странице ;-)
источник
$current = 0;
в начале функции, более поздняя не будет работать.Вот базовый пример глобальной переменной, к которой могут обращаться остальные ваши функции. Вот живой пример для вас: http://jsfiddle.net/fxCE9/
Если вы делаете это в функции jquery ready (), убедитесь, что ваша переменная находится внутри функции ready () вместе с другими вашими функциями.
источник
Объявите переменную вне функций
источник
Лучший способ - использовать
closures
, потому чтоwindow
объект очень, очень сильно забит свойствами.Html
init.js (на основании этого ответа )
script.js
Вот плнкр . Надеюсь, это поможет!
источник