Я рвал на себе волосы, чтобы это сделать ... особенно для сценария обнаружения html5.Я хотел переменную, которая устанавливается только один раз и которая не может быть перезаписана снова.Вот оно:
var StaticConfiguration = {};
StaticConfiguration.Main = {
_html5: null
}
StaticConfiguration.getVariable = function(name) {
return StaticConfiguration.Main["_" + name];
}
StaticConfiguration.setVariable = function(name, value) {
if(StaticConfiguration.Main["_" + name] == null) {
StaticConfiguration.Main["_" + name] = value;
}
}
Сначала я определяю глобальный объект StaticConfiguration, содержащий все эти переменные - в моем случае, просто "html5".Я установил его на нуль, так как я хочу установить его внутри приложения.Для этого я звоню
StaticConfiguration.setVariable("html5", "true");
Это установлено тогда.Если я попытаюсь установить его снова, он потерпит неудачу - конечно, поскольку _html5 больше не является нулевым.Поэтому я практически использую подчеркивание, чтобы «скрыть» статическую переменную.
Это мне очень помогает.Я надеюсь, что это хороший подход - скажите, пожалуйста, если нет :)