Я создал довольно простой прототип:
<script type="text/javascript">
Days = { "sunday": 0, "monday": 1, "tuesday": 3, "wednesday": 4,
"thursday": 5, "friday": 6, "saturday": 7 };
alert("Day Names Enumerator=" + Days.friday);
</script>
Результат выполнения:
Перечислитель имен дней = 6
Как только я переместил определение enum в другой файл
File1.js:
Days = { "sunday": 0, "monday": 1, "tuesday": 3, "wednesday": 4,
"thursday": 5, "friday": 6, "saturday": 7 };
file2.html
<script type="text/javascript" src="File1.js"></script>
<script type="text/javascript">
alert("Day Names Enumerator=" + Days.friday);
</script>
Я получил ошибку:
Uncaught ReferenceError: Дни не определены
Вопрос1 : в чем проблема с этим подходом? Я видел много рекомендаций относительно перечислений в JS, но ничего об использовании их из разных файлов
В самом конце я бы хотел, чтобы мой enum был частью класса, описанного в File1:
function File1Class(){
this.prototype.Days2 = { "sunday": 0, "monday": 1, "tuesday": 3, "wednesday": 4,
"thursday": 5, "friday": 6, "saturday": 7 };
}
и используйте его так:
<script type="text/javascript" src="File1.js"></script>
<script type="text/javascript">
alert("Day Names Enumerator=" + File1Class.Days2.friday);
</script>
Но я все еще получил довольно похожую ошибку:
Uncaught TypeError: Невозможно прочитать свойство «пятница» или не определено
Вопрос2: Как использовать enum, определенный внутри класса? Опять же, я видел много рекомендаций относительно перечислений и классов в JS, но ничего об их использовании
Пожалуйста, сообщите, любые отзывы приветствуются.
Заранее большое спасибо.
EDIT:
Почему вы, ребята, не отвечаете? Это помогло бы всем (я думаю, что, по крайней мере, я смогу как-то проголосовать и наградить вас).
Что касается первого вопроса: я добавил объявление 'var' перед 'Днями', и это позволило получить доступ к его значениям из другого файла.
Большое спасибо!
Что касается второго: похоже, я должен переместить объявление Days2 из конструктора класса, чтобы оно выполнялось. Я сделал это: поместил это перед объявлением класса, после ... но все еще не могу даже вызвать это от самого класса:
File1Class.prototype.Days2 = { "sunday": 0, "monday": 1, "tuesday": 3, "wednesday": 4,
"thursday": 5, "friday": 6, "saturday": 7 };
function File1Class(value) {
this.value = value;
alert(1);
alert("<b>From class internals:</b> " + File1Class.prototype.Days2.friday + "<br />");
Ошибка все та же:
Uncaught TypeError: Невозможно прочитать свойство «пятница» или не определено
Пожалуйста, сообщите! Любые идеи приветствуются!