मैं मध्यम स्तर के जावास्क्रिप्ट डेवलपर हूं जो समझने की कोशिश कर रहा है कि रीढ़ की हड्डी लाइब्रेरी आंतरिक रूप से कैसे काम करती है और अगर कोई मुझे कुछ चुनौतियों का समाधान करने में मदद करता है तो गहराई से सराहना करेगा।रीढ़ की हड्डी वस्तु और वर्ग निर्माण पैटर्न
इसलिए यहाँ मैं क्या समझ रीढ़ में निर्माता समारोह के
मूल परिभाषा
Backbone.Model = function(attributes, options) { }
तो वे सामान्य प्रयोजन का उपयोग हमारे निर्माता के प्रोटोटाइप में आम सुविधाओं को जोड़ने के विधि का विस्तार कर रहा है।
_.extend(Backbone.Model.prototype, Backbone.Events, {...})
अब इस हिस्से तक मुझे पता है कि वास्तव में क्या हो रहा है और निम्नलिखित हालांकि कोड
var user = new Backbone.Model()
नई वस्तु का दृष्टांत देने में खुशी होगी और इस हिस्से मैं चुनौतीपूर्ण
लग रहा है क्योंकि यह बैकबोन में किसी ऑब्जेक्ट को तुरंत चालू करने का तरीका नहीं है, लेकिन हम विस्तार विधि
var Users = Backbone.Model.extend({});
var user = new Users()
012 का उपयोग करते हैं
और रीढ़ की हड्डी कोड में
Backbone.Model.extend = extend;
var extend = function(protoProps, classProps) {
var child = inherits(this, protoProps, classProps);
child.extend = this.extend;
return child;
};
var inherits = function(parent, protoProps, staticProps) {
var child;
if (protoProps && protoProps.hasOwnProperty('constructor')) {
child = protoProps.constructor;
} else {
child = function() {
return parent.apply(this, arguments);
};
}
_.extend(child, parent);
ctor.prototype = parent.prototype;
child.prototype = new ctor();
if (protoProps) _.extend(child.prototype, protoProps);
if (staticProps) _.extend(child, staticProps);
child.prototype.constructor = child;
child.__super__ = parent.prototype;
return child;
};
कृपया मुझे समझाने अंदर क्या हो रहा है समारोह के वारिस और क्या विधि दृष्टिकोण का विस्तार के लाभ
बैकबोन टिप्पणी के साथ स्रोत है: http://documentcloud.github.com/backbone/docs/backbone.html inherits विधि के लिए खोजें। उनके पास एक अच्छा विवरण है। अद्भुत विवरण के लिए – jForrest