我打算使用JavaScript实现类继承接口。 class
是构造函数名称的完美单词。
class = function (classname) {}; // create a class with classname
classA = new class("classA"); // create a class named classA
不幸的是,class
是JavaScript中的保留字。
为什么JavaScript保留单词class
(因为它从不使用它)?
答案 0 :(得分:27)
以下词语在建议的扩展名中用作关键词,因此保留以供将来采用这些扩展名的可能性。
不要担心,如果您在JavaScripts中使用最佳实践,则将所有可访问的函数/变量/构造函数放在命名空间中,这将允许您使用您喜欢的任何名称:< / p>
foo = {};
foo['class'] = function(){...code...};
var myClass = new foo['class']();
答案 1 :(得分:8)
语言不断发展。谨慎保留一些可能在以后使用的关键字。 According to the ECMA standard,class
是未来保留字。
如果您没有保留它们,引入新关键字可能会与现有代码冲突(现在可能已将该字用于其他内容)。发生在Java和assert
。
答案 2 :(得分:5)
现在它用于ECMAScript® 2015 Language Specification:
class Foo {
constructor(bar) {
this.bar = bar;
}
}
new Foo(10).bar; // 10
答案 3 :(得分:4)
class
由ECMAScript规范保留为future关键字
答案 4 :(得分:2)
它可以在不破坏现有程序的情况下在未来添加支持。请查看以下post。
您还可以查看
https://developer.mozilla.org/en/JavaScript/Reference/Reserved_Words