तुम सच में निर्माता ओवरराइड करने के लिए चाहते हैं, Backbone.Model.extend()
करने के लिए एक constructor
संपत्ति गुजरती हैं, उदाहरण के लिए:: ओवरराइड initialize
विधि सही तरीका है
var Klass = Backbone.Model.extend({
constructor : function (attributes, options) {
// ...
}
});
आप में निर्मित निर्माता कॉल करने के लिए चाहते हैं अपने कस्टम कन्स्ट्रक्टर से, आप कुछ ऐसा कर सकते हैं:
var Klass = Backbone.Model.extend({
constructor : function (attributes, options) {
Backbone.Model.apply(this, arguments);
}
});
या यदि आप वीए का नाम दोहराना नहीं चाहते हैं riable सभी उप वर्ग से अधिक माता पिता क्लास वाली, या आपको लगता है कि चर बदलते के मूल्य के बारे में चिंता नहीं करना चाहते, तो आप निम्न की तरह कुछ कर सकते हैं:
var Klass;
var parent_klass = Backbone.Model.prototype;
(function (parent_klass) {
Klass = parent_klass.constructor.extend({
constructor : function (attributes, options) {
parent_klass.constructor.apply(this, arguments);
}
});
})(parent_klass);
या आप जिस तरह से @Claude suggests पसंद करते हैं, लेकिन माता-पिता वर्ग वर नाम के बजाय उप वर्ग के भीतर उप वर्ग चर नाम दोहरा:
var Klass = Backbone.Model.extend(
{
constructor : function (attributes, options) {
Klass.parent_klass.constructor.apply(this, arguments);
}
},
{
parent_klass : Backbone.Model.prototype
}
);
आपको उससे अधिक की सलाह चाहते हैं, तो आप आप क्या हासिल करना चाहते हैं के बारे में अधिक विशिष्ट होना होगा।
अंतर्निहित कन्स्ट्रक्टर कार्यक्षमता के बाद आप जो भी करना चाहते हैं, आपको शायद initialize()
में करना चाहिए।
Backbone.Model = (function(Model) {
// Define the new constructor
Backbone.Model = function(attributes, options) {
// Your constructor logic here
// ...
// Call the default constructor if you wish
Model.apply(this, arguments);
// Add some callbacks
this.on('event', this.myCallback, this);
};
// Clone static properties
_.extend(Backbone.Model, Model);
// Clone prototype
Backbone.Model.prototype = (function(Prototype) {
Prototype.prototype = Model.prototype;
return new Prototype;
})(function() {});
// Update constructor in prototype
Backbone.Model.prototype.constructor = Backbone.Model;
return Backbone.Model;
})(Backbone.Model);
उसके बाद क्या आप वाकई Backbone.Collection प्रोटोटाइप अद्यतन Backbone.Model निर्माता का उपयोग करता है बनाने के लिए है:
_.extend(Backbone.Collection.prototype, {
model: Backbone.Model
});
आप 'parse' (http://documentcloud.github.com/backbone/#Model-parse) का उपयोग कर आवश्यकतानुसार सर्वर के JSON को बदल सकते हैं। शायद आपको यह स्पष्ट करना चाहिए कि आप क्या करने की कोशिश कर रहे हैं, एक उदाहरण मदद कर सकता है। –