perché la class è una parola riservata in JavaScript?

Sto pianificando di implementare un’interfaccia ereditaria di class usando JavaScript. class è la parola perfetta come nome del costruttore.

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

Sfortunatamente, la class è una parola riservata in JavaScript.

Perché JavaScript riserva la parola class (dal momento che non la usa mai)?

È riservato a ECMAScript a prova di futuro

Le parole seguenti sono utilizzate come parole chiave nelle estensioni proposte e sono pertanto riservate per consentire la possibilità di future estensioni di tali estensioni.

Non preoccuparti però, se utilizzi le best practice nei tuoi JavaScript, stai inserendo tutte le funzioni / variabili / costruttori accessibili in uno spazio dei nomi, che ti consentirà di utilizzare qualsiasi nome desideri:

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

Le lingue evolvono. È prudente riservare alcune parole chiave che potrebbero venire in uso in seguito. Secondo lo standard ECMA , la class è una parola riservata per il futuro.

Se non li hai prenotati, l’introduzione di nuove parole chiave potrebbe essere in conflitto con il codice esistente (che potrebbe già utilizzare la parola per altre cose). È successo con Java e assert .

Ora è utilizzato nella specifica della lingua di ECMAScript® 2015 :

 class Foo { constructor(bar) { this.bar = bar; } } new Foo(10).bar; // 10 

class è riservata come futura parola chiave dalla specifica ECMAScript

Parole riservate – MDN

È lì che il supporto può essere aggiunto in futuro senza rompere i programmi esistenti. Si prega di dare un’occhiata al seguente post .

Puoi anche guardare

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