Allowing Model#defaults to be a function as well as a hash.

This commit is contained in:
Jeremy Ashkenas
2010-12-20 23:00:51 -05:00
parent c0c8cb2763
commit 331cb8bede
3 changed files with 20 additions and 5 deletions

View File

@@ -115,8 +115,12 @@
// Create a new model, with defined attributes. A client id (`cid`)
// is automatically generated and assigned for you.
Backbone.Model = function(attributes, options) {
var defaults;
attributes || (attributes = {});
if (this.defaults) attributes = _.extend({}, this.defaults, attributes);
if (defaults = this.defaults) {
if (_.isFunction(defaults)) defaults = defaults();
attributes = _.extend({}, defaults, attributes);
}
this.attributes = {};
this._escapedAttributes = {};
this.cid = _.uniqueId('c');