#javascript #global-variables
#javascript #глобальные переменные
Вопрос:
Я пытаюсь создать переменную, которая может работать где угодно, и только не в одной функции.
Как мне это сделать? Я искал уже около 1 часа и не могу ее найти : (
Я пробовал это
noneTxt = document.innerHTML="Nothing is playing!";
function plinf() {
if (myAudio.paused) {
myAudio.play();
}
else {
myAudio.pause();
document.getElementById('message').innerHTML=noneTxt;
}
}
Но это работает, только если я помещаю переменную внутри функции с префиксом var…
Итак, как я могу сделать ее своего рода глобальной? :/
Комментарии:
1. Хм, что вы имеете в виду под
document.innerHTML
? Это свойство не существует. Ее установка ничего не даст.2. @lonesomeday Вероятно, это работает на какой-то малоизвестной версии IE или NN.
Ответ №1:
вы всегда можете использовать window
object для присоединения вашей «глобальной» переменной, но это не очень хорошая идея, может вызвать коллизии с другими способами использования
window.noneTxt = document.innerHTML="Nothing is playing!";
Ответ №2:
Если вы можете управлять несколькими файлами JS, создайте новый файл javascript с именем что-то вроде «globals.js » и поместите туда все ваши глобальные переменные:
var g1 = "this is a global var";
var g2 = "another global var";
Затем свободно используйте эти переменные в других файлах, при условии, что вы не забываете включать этот файл в каждую загружаемую вами страницу.
The ‘globals.js ‘ файл также может включать в себя удобные функции, такие как ‘getVar(varname)’.
Еще одним шагом вперед было бы создание единственной переменной, представляющей собой коллекцию, и функции, которая получает ключ и возвращает соответствующую переменную из коллекции. Функция может также проверять, существует ли переменная, и возвращать значение по умолчанию, если нет:
var globals = {
g1: "this is a global var",
g2: "another global var"
};
function getGlobalVar(varname) {
if (typeof(globals[varname]) === 'undefined') {
return "some default";
} else {
return globals[varname];
}
}
-DBG
Ответ №3:
вы можете создать общедоступную функцию, которая имеет доступ к частным переменным, например, так
function Person() {
var secret = "Secret Message";
this.revealSecret = function() {
return secret;
}
}
var me = new Person();
me.revealSecret(); //returns "Secret Message"