为什么类是JavaScript中的保留字?

时间:2011-09-23 05:25:00

标签: javascript

我打算使用JavaScript实现类继承接口。 class是构造函数名称的完美单词。

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

不幸的是,class是JavaScript中的保留字。

为什么JavaScript保留单词class(因为它从不使用它)?

5 个答案:

答案 0 :(得分:27)

保留给future-proof ECMAScript

  

以下词语在建议的扩展名中用作关键词,因此保留以供将来采用这些扩展名的可能性。

不要担心,如果您在JavaScripts中使用最佳实践,则将所有可访问的函数/变量/构造函数放在命名空间中,这将允许您使用您喜欢的任何名称:< / p>

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

答案 1 :(得分:8)

语言不断发展。谨慎保留一些可能在以后使用的关键字。 According to the ECMA standardclass是未来保留字。

如果您没有保留它们,引入新关键字可能会与现有代码冲突(现在可能已将该字用于其他内容)。发生在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关键字

Reserved Words - MDN

答案 4 :(得分:2)

它可以在不破坏现有程序的情况下在未来添加支持。请查看以下post

您还可以查看

https://developer.mozilla.org/en/JavaScript/Reference/Reserved_Words