功能原型是否会在Ember 2中消失?

Chr*_*ini 1 ember.js ember-cli

http://emberjs.com/blog/2015/05/13/ember-1-12-released.html上的最新Ember版本发布以来,似乎有一种新的setter和getter方法语法.

我们应该习惯这样做:

fullName: Ember.computed('firstName', 'lastName', function() {
  return this.get('firstName') + ' ' + this.get('lastName');
})
Run Code Online (Sandbox Code Playgroud)

代替:

fullName: function() {
  return this.get('firstName') + ' ' + this.get('lastName');
}.property('firstName', 'lastName')
Run Code Online (Sandbox Code Playgroud)

Mar*_*mus 5

简答:不,等待装饰者降落在Ember然后切换.

更长的答案:function() { }.property()声明计算属性的方式取决于扩展函数原型.扩展JavaScript"原语"的原型有时被视为一种不好的做法.

Ember.computed(function() { })方法是与前者相同,只是现在不使用原型扩展.

目前正在讨论Ember.js github上哪种方式更好.你可以在这里找到它.

同样在不久的将来,另一个更清洁,使用装饰器声明计算属性的方法应该来到Ember.然后计算出的属性如下所示:@computed foo() { }.您链接到的博客文章中也提到了这些内容.你可以在这里找到更多关于这些的细节.

我的意见是你应该等待装饰者然后进行切换.