why is class a reserved word in JavaScript?

后端 未结 5 1853
渐次进展
渐次进展 2020-11-29 08:25

I am planning to implement class inherit interface using JavaScript. class is the perfect word as the name of the constructor.

class = function          


        
相关标签:
5条回答
  • 2020-11-29 08:41

    Languages evolve. It is prudent to reserve a few keywords that might come in use later. According to the ECMA standard, class is a Future Reserved Word.

    If you did not reserve them, introducing new keywords could conflict with existing code (which already might be using the word for other things). Happened with Java and assert.

    0 讨论(0)
  • 2020-11-29 08:44

    Now it's used in ECMAScript® 2015 Language Specification:

    class Foo {
        constructor(bar) {
            this.bar = bar;
        }
    }
    new Foo(10).bar; // 10
    
    0 讨论(0)
  • 2020-11-29 08:51

    class is reserved as a future keyword by the ECMAScript specification

    Reserved Words - MDN

    0 讨论(0)
  • 2020-11-29 08:59

    It's reserved to future-proof ECMAScript

    The following words are used as keywords in proposed extensions and are therefore reserved to allow for the possibility of future adoption of those extensions.

    Don't fret though, if you're using best-practices in your JavaScripts, you're placing all accessible functions/variables/constructors in a namespace, which will allow you to use whatever name you'd like:

    foo = {};
    foo['class'] = function(){...code...};
    var myClass = new foo['class']();
    
    0 讨论(0)
  • 2020-11-29 09:02

    It is there so that support can be added in future without breaking existing programs. Please take a look at the following post.

    You can also look at

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

    0 讨论(0)
提交回复
热议问题