Template String As Object Eigenschaftsname

Warum lässt JavaScript keine Vorlagenzeichenfolge als Objekteigenschaftsschlüssel zu? Zum Beispiel, wenn ich eingebe:

foo = {`bar`: 'baz'}

in den NodeJS REPL wirft es einSyntaxError mit "Unerwarteter Template-String" mit einem langen Stack-Trace. Eigenschaftswerte sind jedoch in Ordnung, was nicht so unerwartet ist. Ähnliche Fehler treten im Browser auf, zum Beispiel wirft Firebug einSyntaxError mit "ungültige Eigenschafts-ID".

Template-Zeichenfolgen sind in "berechneten Eigenschaftsnamen" zulässig. Dies funktioniert beispielsweise in allen Browsern, die die Syntax unterstützen:

var foo = {
    [`bar` + 1]: `baz`
};

und erstellt das Objekt{"bar1": "baz"}.

Warum sind Vorlagenzeichenfolgen nicht als wörtliche Objektschlüssel zulässig? Ist es aus Performancegründen? Template-Strings müssen kompiliert werden, möglicherweise zur Laufzeit (korrigieren Sie mich, wenn ich falsch liege). Dies bedeutet, dass der Interpreter jedes Mal, wenn er auf dieses Objekt stößt, den Objektnamen berechnen muss. Berücksichtigt man Dinge wie "gekochte" Template-Strings, scheint dies langsam zu werden, obwohl es seit ES5 Getter und Setter gibt. Firefox erwähnt dies nicht als Fehler, weshalb ich es als unerwartet empfand. Wird die Syntax irgendwann in der Zukunft erlaubt sein?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage