Modèle De Chaîne De Caractères Comme Nom De Propriété D'Objet

Pourquoi JavaScript permettent pas un modèle de chaîne de caractères comme un objet de propriété de la clé? Pour exemple, quand je suis entrée:

foo = {`bar`: 'baz'}

dans le NodeJS REPL, il jette un SyntaxError avec "Inattendu modèle de chaîne" avec une longue trace de la pile. Les valeurs de propriété sont beaux, cependant, qui n'est pas surprenante. Des erreurs similaires se produisent dans le navigateur, par exemple, Firebug jette un SyntaxError avec "invalid id de propriété".

Modèle de chaînes de caractères sont autorisés dans "calculé les noms de propriété". Par exemple, cette compile parfaitement bien dans tous les navigateurs qui prennent en charge la syntaxe:

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

et crée l'objet {"bar1": "baz"}.

Pourquoi chaînes du modèle ne sont pas autorisés dans littérale clés de l'objet? Est-ce pour des raisons de performances? Chaînes du modèle doit être compilé, éventuellement à l'exécution (corrigez-moi si je me trompe), ce qui signifie que chaque fois qu'il rencontre cet objet, l'interprète devra calculer le nom de l'objet. La prise en compte des choses comme "cuit" modèle de chaînes de caractères, cela semble comme il pourrait devenir lent, même si nous avons eu des getters et setters depuis ES5. Firefox ne mentionne pas cela comme une erreur, c'est pourquoi je l'ai trouvé inattendu. Sera la syntaxe être autorisée à l'avenir?

  • N'est-ce pas la raison, calculée noms de propriété est introduit. Oui, vous avez besoin des accolades autour d'elle, mais elle a aussi du point de vue syntaxique semble mieux comme une solution générique traitant de divers scénarios.
  • Je suis juste de repenser à ma réponse, et je ne suis pas trop sûr que c'était correct. Maintenant, je suis à creuser par le biais de l'ES6 docs....
  • Pourquoi sont-modèle de chaînes de caractères ne sont pas autorisés dans littérale clés de l'objet? Ils sont, vous avez juste la syntaxe de mal...?
InformationsquelleAutor trysis | 2015-10-18