0
我想重寫我的Backbone.Model
上的構造函數來調整傳遞給父構造函數的屬性。這是我想要做的:重寫Backbone.Model的構造函數?
Models.Item = Backbone.Model.extend({
constructor: function (attributes, options) {
Backbone.Model.apply(this, this.parse(attributes), options);
},
parse: function (attributes) { .... }
)};
我的問題是父構造函數調用未定義的參數。
https://github.com/jashkenas/backbone/blob/master/backbone.js#L254
var Model = Backbone.Model = function(attributes, options) {
var attrs = attributes || {};
options || (options = {});
this.cid = _.uniqueId('c');
this.attributes = {};
if (options.collection) this.collection = options.collection;
if (options.parse) attrs = this.parse(attrs, options) || {};
attrs = _.defaults({}, attrs, _.result(this, 'defaults'));
this.set(attrs, options);
this.changed = {};
this.initialize.apply(this, arguments);
};
的attributes
和options
參數都是未定義的,這意味着使用默認參數實例化模型。
現在我可以覆蓋initialize
方法並取消設置不良屬性,並將其替換爲正確的屬性。但是,這看起來像一個黑客。
爲什麼用未定義的參數調用父構造函數?
我錯過了什麼?
你爲什麼要發佈一個你已經知道答案的問題?如果你發佈一個問題,至少應該給予他人一個回答它的機會。 – Bart
因爲我在問這個問題的時候想出了它,並且想寫下來。隨意提供你自己的答案。 – Martinffx