आप विभिन्न मॉड्यूल में अपने मॉड्यूल को अलग करने के लिए वृद्धि का उपयोग कर सकते हैं। एक बार जब आप उत्पादन रिलीज के लिए तैयार हो जाते हैं, तो आप उन फ़ाइलों को एक या कई फाइलों में जोड़ सकते हैं।
File1 मॉड्यूल M.n
var M = M || {};
M.n = M.n || {};
(function (self) {
self.doSomething = function() {
console.log("something");
};
})(M.n);
File2 अपने "मुख्य" लिपि में परिभाषित करता है मॉड्यूल M.n.p
var M = M || {};
M.n = M.n || {};
M.n.p = M.n.p || {};
(function (self) {
self.doSomethingElse = function() {
console.log("something else");
};
})(M.n.p);
अब आप स्वतंत्र रूप से इन मॉड्यूल के सदस्यों का उपयोग कर सकते परिभाषित करता है।
M.n.doSomething();
M.n.p.doSomethingElse();
मॉड्यूल को परिभाषित करना एक छोटे से थकाऊ हो सकता है, लेकिन आप इसे स्वचालित करने के लिए कुछ कोड़ा में सक्षम होना चाहिए। अतीत में, मैंने इसे आसान बनाने में मदद के लिए इस छोटी सी लिपि का उपयोग किया है, लेकिन खुद को बनाने के लिए स्वतंत्र महसूस करें। आप निरंतर फ़ाइल नामकरण के साथ निर्भरता प्रबंधन में भी सेंकने में सक्षम हो सकते हैं।
var namespace = function(path, context, args) {
var finalLink = namespace._generateChain(path, window);
context.apply(finalLink, [finalLink].concat(args));
};
namespace._generateChain = function(path, root) {
var segments = path.split('.'),
cursor = root,
segment;
for (var i = 0; i < segments.length; ++i) {
segment = segments[i];
cursor = cursor[segment] = cursor[segment] || {};
}
return cursor;
};
का उपयोग करें:
namespace("M.n.p", function (self) {
self.doSomethingElse = function() {
console.log("something else");
};
});
किसी कारण से आप एक अलग उर्फ तहत एक चर शामिल करना चाहते हैं, तो आप यह नाम स्थान कार्य करने के लिए पारित कर सकते हैं और यह एक के रूप में कार्य करने के लिए पारित हो जाएगा तर्क।
namespace("M.n.p", function (self, $) {
self.doSomethingElse = function() {
$("p").text("something else");
};
}, jQuery);
प्रत्येक मॉड्यूल के आस-पास कई बंदियों को कैसे संयोजित किया जाएगा? – Drew
@ ड्रू: यह नहीं होगा। कंसटेनेशन उत्पादन वातावरण में HTTP अनुरोधों (स्क्रिप्ट लोडिंग से) की संख्या को कम करने के लिए उपयोग किया जाएगा। इसी प्रकार, आप कोड आकार को कम करने के लिए इसे एक मिनीफायर के माध्यम से पास करेंगे। –
क्षमा करें मैंने सोचा कि मैंने आपके स्पष्टीकरण में पढ़ा है – Drew