2015-12-31 3 views
5

Les repères show a computed property écrits avec des accolades. Je ne suis pas sûr si elles sont nécessaires.Utilisation de l'anti-retour dans les propriétés calculées de braise

Serait-ce:

fullName: Ember.computed('firstName', 'lastName', function() { 
    return `${this.get('firstName')} ${this.get('lastName')}`; 
}) 

être réécrite comme ceci:

fullName: Ember.computed('firstName', 'lastName', function() { 
    return this.get('firstName') + ' ' + this.get('lastName'); 
}) 

?

Pour moi, c'est moins obscur. Quels sont les avantages/inconvénients de chaque méthode?

Répondre

4

Les graduations arrières n'ont rien à voir avec Ember. Ils font partie de ES6 appelé chaînes de modèles. Ils facilitent simplement l'interpolation des chaînes. Vous pouvez avoir une instruction js valide dans les accolades et ils sont évalués. Ils permettent également des chaînes multi-lignes.

Un point important que je suis conscient est que les chaînes de modèle sont évaluées immédiatement. Donc, ne peut pas être réutilisé en l'assignant à une variable. La variable n'obtiendra que le résultat évalué.

Here is more info about them in MDN.

+0

Merci pour avoir le lien MDN. Je sais qu'ils ne sont pas liés à Ember, mais c'est le premier endroit où je les ai vus largement utilisés. – dangonfast

+0

En effet, certains membres de l'équipe Ember sont impliqués dans les standards ecmascript, donc Ember essaie de planifier l'avenir de JS et d'adopter les fonctionnalités à venir autant que possible. es6 modules, éléments personnalisés, ... – spectras

+0

@gonvaled Ya ember pousse plutôt à l'adoption précoce de nouvelles fonctionnalités ES6 comme des modules, etc. Je pense que ce lien peut être utile pour en savoir plus sur les chaînes de modèles et les pièges du livre YDKJS. https://github.com/getify/You-Dont-Know-JS/blob/master/es6%20%26%20beyond/ch2.md#template-literals – blessenm

4

Ils sont fondamentalement les mêmes. En fait, pour l'instant, la syntaxe backtick, ou es6 template strings, est en train de revenir dans la deuxième version du code final.

Certains pourraient argumenter que la première forme est plus logique et, en utilisant des noms de variables plus simples, plus lisible. Il permet également de scanner les librairies i18n, telles que celles basées sur gettext, pour les trouver facilement. Je doute qu'ils puissent faire quelque chose d'utile jusqu'à ce que la syntaxe backtick soit largement supportée par les navigateurs. Ça arrive. Chrome, Firefox, Safari, Edge le supportent. En fin de compte, utilisez-les si vous le souhaitez, ne le faites pas si vous ne les aimez pas. N'a pas d'importance.

(définition formelle specs)