函数类的property()方法正确使用

时间:2013-12-19 17:10:51

标签: javascript ember.js

文档中的示例:

App.Person = Ember.Object.extend({
  // these will be supplied by `create`
  firstName: null,
  lastName: null,

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

var ironMan = App.Person.create({
  firstName: "Tony",
  lastName:  "Stark"
});

ironMan.get('fullName') // "Tony Stark"

我无法理解为什么我必须指定.property('firstName', 'lastName')之类的依赖项,如果我已经指出需要返回的内容:return this.get('firstName') + ' ' + this.get('lastName')并且上面的示例可以在没有它的情况下工作(只使用property())。 感谢。

1 个答案:

答案 0 :(得分:3)

用于缓存。

来自docs

  

默认情况下,支持计算属性的函数只会是   调用一次,结果将被缓存。您可以指定各种   您的计算属性所依赖的属性。这将   如果依赖项是,则强制重新计算缓存的结果   修改。