在Backbone.Model中指定所有属性

时间:2014-10-23 12:56:28

标签: class backbone.js

我在移动项目中使用Backbone。假设我有一个这样的示例类。

var Person = Backbone.extend({

});

Person类包含以下属性firstNamelastNameagegender。我想在类中指定所有这些属性。所以其他开发人员知道他们要为实例设置的属性是什么。在阅读完文档之后,我看到有一个名为defaults的属性,我可以使用它。

var Person = Backbone.extend({
   defaults: {
      firstName: '',
      lastName: '',
      age: null,
      gender: null
   }
});

但是我看到defaults属性的目的是不同的吗?不要让人们知道该类包含的属性是什么。有没有更好的方法来实现这个目标?

2 个答案:

答案 0 :(得分:1)

在我们的项目中,我们使用defaults来实现此目的。它很好地解决了这个问题,也可以作为文档点。我知道,没有其他的支持方式。但是,您仍然可以使用老式的评论:)

答案 1 :(得分:1)

您可以编写getter函数,因此模型的属性可以直接作为模型的公共API使用。

这样,任何使用模型对象的开发人员都能够查看它的公共属性(假设她使用了不错的IDE),甚至没有打开文件进行编辑(为什么这样做?),例如:

var Person = Backbone.extend({
    defaults: {
        firstName: '',
        // ...
    },
    getFirstName: function () {
        return this.attributes.firstName;
    }
    // ...
});