在子类骨干中设置默认值

时间:2014-10-30 16:02:47

标签: javascript inheritance backbone.js underscore.js

我有一个超类

var mySuperClass = Backbone.Model.extend({
     defaults: { ... }
});

var mySubClass = mySuperClass.extend({
     defaults: _.extend(mySuperClass.prototype.defaults, { 
         childDefault1: ..
     }
})

它完美无缺,它会覆盖我需要覆盖的每个值,但是,如果我创建一个new mySubClass options,如new mySubClass({someDefault: value}) someDefault property没有成功。 任何的想法?

1 个答案:

答案 0 :(得分:0)

使用_.defaults

var SuperBook = Backbone.Model.extend({
    defaults: {
        author: "test",
        pages: 525
    }
});

var MiniBook = SuperBook.extend({
    defaults: {
        description: "mini book"            
    }
});

_.defaults(MiniBook.prototype.defaults, SuperBook.prototype.defaults); 


var myModel = new MiniBook({ author: 'default author', description : 'default description' })

由于