Подтвердить что ты не робот

Почему класс является зарезервированным словом в JavaScript?

Я планирую реализовать интерфейс наследования класса с помощью JavaScript. class - это идеальное слово как имя конструктора.

class = function (classname) {}; // create a class with classname
classA = new class("classA"); // create a class named classA

К сожалению, class является зарезервированным словом в JavaScript.

Почему JavaScript зарезервирует слово class (так как он никогда не использует его)?

4b9b3361

Ответ 1

Он зарезервирован для будущего ECMAScript

Следующие слова используются в качестве ключевых слов в предлагаемых расширениях и поэтому зарезервированы для возможности возможности будущего использования этих расширений.

Не волнуйтесь, если вы используете лучшие практики в своих JavaScripts, вы размещаете все доступные функции/переменные/конструкторы в пространстве имен, что позволит вам использовать любое имя, которое вы хотите:

foo = {};
foo['class'] = function(){...code...};
var myClass = new foo['class']();

Ответ 2

Языки развиваются. Разумно зарезервировать несколько ключевых слов, которые могут быть использованы позже. В соответствии со стандартом ECMA class - это будущее зарезервированное слово.

Если вы их не резервировали, внедрение новых ключевых слов может привести к конфликту с существующим кодом (который уже может использовать слово для других вещей). Случилось с Java и assert.