创建骨干模型嵌套函数

Creating Backbone model nested functions

本文关键字:嵌套 函数 模型 创建      更新时间:2023-09-26

我有一个Backbone模型,有一堆我想添加到它的函数。为了方便起见,我想把它们分成几组。我想这样使用它们:modelInstance.group1.foo();modelInstance.group2.bar();,其中group1.foogroup2.barthis引用都是modelInstance。

我试过使用_.bindAll(this, 'group1.foo'),但那不起作用。

我该如何改变以下事情来完成我的目标…如果可能的话?

var group1Funcs = {
        foo: function(){ return this.get("count") + 1;},
        ...
    },
    model = Backbone.Model.extend({
        group1: group1Funcs
    });
var fns = {
  first: function() {
    console.log(this.vars);
  }
};
var Model = Backbone.Model.extend({
  initialize: function() {
    this.vars = [ 1, 2 ];
    this.fnGroup = {};
    var self = this;
    _.each(fns, function(fn, key) {
      var nfn = _.bind(fn, self);
      self.fnGroup[key] = nfn;
    });
  },
});
var model = new Model();
model.fnGroup.first() // [ 1, 2 ]