Почему класс является зарезервированным словом в JavaScript?
Я планирую реализовать интерфейс наследования класса с помощью JavaScript. class
- это идеальное слово как имя конструктора.
class = function (classname) {}; // create a class with classname
classA = new class("classA"); // create a class named classA
К сожалению, class
является зарезервированным словом в JavaScript.
Почему JavaScript зарезервирует слово class
(так как он никогда не использует его)?
Ответы
Ответ 1
Он зарезервирован для будущего ECMAScript
Следующие слова используются в качестве ключевых слов в предлагаемых расширениях и поэтому зарезервированы для возможности возможности будущего использования этих расширений.
Не волнуйтесь, если вы используете лучшие практики в своих JavaScripts, вы размещаете все доступные функции/переменные/конструкторы в пространстве имен, что позволит вам использовать любое имя, которое вы хотите:
foo = {};
foo['class'] = function(){...code...};
var myClass = new foo['class']();
Ответ 2
Языки развиваются. Разумно зарезервировать несколько ключевых слов, которые могут быть использованы позже. В соответствии со стандартом ECMA class
- это будущее зарезервированное слово.
Если вы их не резервировали, внедрение новых ключевых слов может привести к конфликту с существующим кодом (который уже может использовать слово для других вещей). Случилось с Java и assert
.
Ответ 3
Теперь он используется в ECMAScript® 2015 Language Specification:
class Foo {
constructor(bar) {
this.bar = bar;
}
}
new Foo(10).bar; // 10
Ответ 4
class
зарезервировано как ключевое слово будущего по спецификации ECMAScript
Зарезервированные слова - MDN
Ответ 5
Это так, что поддержка может быть добавлена в будущем без нарушения существующих программ. Пожалуйста, просмотрите следующий пост.
Вы также можете посмотреть
https://developer.mozilla.org/en/JavaScript/Reference/Reserved_Words