मॉड्यूल पैटर्न को लागू करते समय, निजी फ़ंक्शंस मॉड्यूल के निजी गुणों का उपयोग कैसे करते हैं? मैंने कोई उदाहरण नहीं देखा है जहां डेवलपर्स ऐसा करते हैं। क्या कोई कारण नहीं है?जावास्क्रिप्ट मॉड्यूल पैटर्न: निजी तरीके मॉड्यूल के दायरे तक कैसे पहुंचते हैं?
var module = (function(){
// private property
var number = 0;
// private method
_privateIncrement = function(){
// how do I access private properties here?
number++;
};
// public api
return {
// OK
getNumber: function(){
return number;
},
// OK
incrNumber: function(){
number++;
},
// Doesn't work. _privateIncrement doesn't have
// access to the module's scope.
privateIncrNumber: function(){
_privateIncrement();
}
};
})();
ठीक काम करता है: http://jsfiddle.net/DREKt/ यद्यपि आप संभवतः 'var' घोषणा के साथ '_privateIncrement' से पहले होना चाहते हैं। – Dennis
यदि मॉड्यूल के बंद होने में 'संख्या' बाध्य नहीं था, और ऑब्जेक्ट का एक हिस्सा था, तो आपको सही संदर्भ में निजी विधि को आमंत्रित करने के लिए 'लागू()' या' कॉल() 'का उपयोग करने की आवश्यकता हो सकती है। '_privateIncrement.call (यह)' –