主干模型:初始化与构造函数

Backbone model: initialize vs. constructor

本文关键字:构造函数 初始化 模型      更新时间:2023-09-26

通读文档,我看到您可以在模型类上替换 Backbone 扩展的构造函数。但是这样做和在初始化方法上这样做有什么区别?使用new时不是都叫吗?

var Library = Backbone.Model.extend({
  constructor: function() {
    this.books = new Books();
    Backbone.Model.apply(this, arguments);
  },
  parse: function(data, options) {
    this.books.reset(data.books);
    return data.library;
  }
});

与。

var Library = Backbone.Model.extend({
  initialize: function() {
    this.books = new Books();
    Backbone.Model.apply(this, arguments);
  },
  parse: function(data, options) {
    this.books.reset(data.books);
    return data.library;
  }
});
"

constructor"在Backbone设置结构之前运行。
"初始化"在结构的构造函数中调用。

换句话说,如果你需要在 Backbone 设置结构之前向对象添加任何内容,你可能想使用"构造函数"。如果你需要在Backbone设置结构之后向对象添加一些东西,你可以使用"初始化"。

寄件人: https://github.com/jashkenas/backbone/issues/720