Проблема
Попытка присвоить переменной имя class
приводит к ошибке «Отсутствует; перед оператором».
Пояснение
В ECMAScript 262 spe c есть список ключевых и зарезервированных слов. Вы не можете использовать их в любом другом контексте, который определен для них (а некоторые даже зарезервированы на будущее).
Список зарезервированных слов ATTOW
ждать | перерыв | случай | поймать | класс | const | продолжить | отладчик | по умолчанию | удалить | делать | еще | экспорт | расширяется | ложь | наконец | для | функция | если | импорт | в | instanceof | новый | null | возврат | супер | переключатель | это | бросить | правда | попробовать | typeof | var | пусто | пока | с | yield
Зарезервировано на будущее
enum | орудия | интерфейс | пакет | частный | защищенный | publi c
В сообщении об ошибке
Вы видите не очень полезное сообщение об ошибке, потому что ваш скрипт работает в старой среде выполнения Rhino ГАЗ б / у. Если бы вы использовали новый, V8 (пожалуйста, сделайте миграцию как можно скорее), вы бы получили:
SyntaxError: Unexpected token 'class '
На самом деле существует вторая проблема, которая приведет к ошибке - использование двоеточия с оператором присваивания не является допустимым синтаксисом JS, но все кредиты должен go к другому ответу, чтобы заметить:
SyntaxError: Unexpected token ':'