在ember计算属性中使用反引号

时间:2015-12-31 10:28:44

标签: javascript ember.js ecmascript-6 computed-properties

用反引号写的指南show a computed property。我不确定他们是否有必要。

可以这样:

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

重写如下:

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

对我来说,这不那么模糊。每种方法的优点是什么?

2 个答案:

答案 0 :(得分:4)

背蜱与Ember无关。它们是ES6的一部分,称为模板字符串。它们只是简化字符串插值。您可以在花括号中包含任何有效的js语句,然后对它们进行求值。它们还允许多行字符串。

我知道的一个主要问题是模板字符串会立即得到评估。所以不能通过将其赋值给变量来重用。变量只会得到评估结果。

Here is more info about them in MDN.

答案 1 :(得分:4)

它们基本相同。实际上,目前,反引号语法或es6 template strings正在最终代码中被转换回第二个版本。

有些人可能认为第一种形式更符合逻辑,当使用更简单的变量名时,更具可读性。它还允许代码扫描i18n库,例如基于gettext的库,轻松找到它们。我怀疑他们可以做出任何有用的东西,直到浏览器广泛支持反引号语法。它来了。 Chrome,Firefox,Safari,Edge都支持它。

最后如果你愿意,可以使用它们,如果你不喜欢它们,请不要使用它们。没关系。

specs中的正式定义)