Очень важно научиться пространству имен ваших переменных в JavaScript. Сфера имеет значение, и это имеет большое значение. Прямо сейчас, потому что вы используете ключевое слово "var", ваши вещи будут находиться в локальной области видимости.
Некоторые другие ответы здесь говорят, что вы должны переместить их в глобальную область. Это работает, если что-то еще не перезаписывает их непреднамеренно. Я категорически не согласен с таким подходом, поскольку переменные в глобальном масштабе - плохая практика в JavaScript.
Пространство имен работает следующим образом:
var foo = foo || {} //Use existing foo or create an empty object.
foo.bar = foo.bar || {}
foo.bar.baz = foo.bar.baz || {}
и т.д.. и т.д.
Может показаться, что это намного больше работы, но также ЗАЩИЩАЕТ ВАШИ ПЕРЕМЕННЫЕ.
Вы также можете добавить простую функцию пространства имен, которая безопасно помещает пространство имен по отношению к объекту окна. (Я написал это где-то давным-давно, и я думаю, что немного изменил его, но, возможно, не сделал).
Поместите это в верхнюю часть вашего приложения, и вы можете использовать пространство имен с помощью $ .namespace ("myapp.mydata"), а затем сказать myapp.mydata.currentYear = ...
$.namespace = function() {
var a=arguments, o=null, i, j, d;
for (i=0; i<a.length; i=i+1) {
d=a[i].split(".");
o=window;
for (j=0; j<d.length; j=j+1) {
o[d[j]]=o[d[j]] || {};
o=o[d[j]];
}
}
return o;
};
Кроме того, если вы новичок или хотите получить хардкор, я рекомендую прочитать JavaScript The Good Parts by Crockford.