如果骨干模型(或集合)可能存在或可能不存在,那么如何扩展或混合?

这是我尝试过的:

mymodels.A = ('A' in mymodels ? mymodels.A : Backbone.Model).extend({
 /* url, initialize, parse, etc... */
});


要么

mymodels.A = ('A' in mymodels ? mymodels.A.prototype : Backbone.Model).extend({
 /* url, initialize, parse, etc... */
});


要么

mymodels.A = _.extend('A' in mymodels ? mymodels.A : Backbone.Model, {
 /* url, initialize, parse, etc... */
});


有什么想法吗?

编辑:

mymodels.A = (mymodels.A || Backbone.Model).extend({
 /* url, initialize, parse, etc... */
});


编辑2:

采用了不同的方法....请参阅下面的答案

最佳答案

这完成了我试图做的事情。最后,我分段创建一个对象,并将整个对象传递给Backbone.Model.extend:

var mymodels = {};

mymodels.A = _.extend({}, mymodels.A, {
    url: "http://www.google.com"
});

mymodels.A = _.extend({}, mymodels.A, {
    initialize: function(){
        this.set('mixin', 'TRUE');
    }
});
mymodels.A = Backbone.Model.extend(mymodels.A);

var model = new mymodels.A({'new': 'TRUE'});

09-25 22:27