जब मैं इस मॉड्यूल के विभिन्न उदाहरणों को आजमाता हूं और करता हूं, तो यह काम नहीं करता है।मॉड्यूल पैटर्न एक सिंगलटन क्यों बनाता है?
ऐसा लगता है कि यह एक सिंगलटन है। मेरे पास एक समय में केवल एक उदाहरण हो सकता है।
क्या तंत्र केवल रचनात्मक फ़ंक्शन publik() को केवल उदाहरण के लिए सीमित करता है?
var Module = (function()
{
var publik = function ()
{
};
publik.prototype.test;
publik.prototype.get = function()
{
document.getElementById('a'+test).innerHTML = test;
};
publik.prototype.set = function(value)
{
test = value;
};
return publik;
})();
var object1 = new Module();
var object2 = new Module();
object1.set('1');
object2.set('2');
object1.get();
object2.get();
तो हर बार जब मैं नया कहता हूं तो यह वास्तव में एक नया कार्य-वस्तु नहीं है, यह वही है? –
हां।अधिक सही होने के लिए, जब आप फ़ंक्शन (फ़ंक्शन() {}()) पैटर्न में एक फ़ंक्शन संलग्न करते हैं, तो इसे स्वचालित रूप से लोड समय पर निष्पादित किया जाता है और परिणाम इसके स्थान पर रखा जाता है। तो अंत में आपकी स्क्रिप्ट (आंतरिक रूप से) var मॉड्यूल = YourObjectWithGetAndSetMethods की तरह दिखती है; और जब आप एक var x = मॉड्यूल() करते हैं; आप एक ऑब्जेक्ट को कॉल कर रहे हैं जो पहले से ही तत्काल है और इसलिए तत्काल प्रकाशन चर के साथ। – Zlatko
मुझे एक फर्जी पैटर्न की तरह लगता है। यह "नया" कीवर्ड का अर्थ "टूटता है"। क्या आप सहमत हैं? यदि ऐसा है तो लोग इसका उपयोग क्यों करते हैं? मैंने स्पष्ट रूप से इसका आविष्कार नहीं किया था। –