बिना बंद मानक वर्ग बनाम अंदर घोषित आम तौर पर मैं प्रोटोटाइप पर आधारित मानक OOP दृष्टिकोण का उपयोग और मेरी कक्षा इसवर्ग बंद
var std = function(){
this.log = function(msg){ console.log("want to be private. " + msg) };
};
std.prototype = {
logInfo: function(msg){
this.log(msg);
}
};
तरह लग रहा है लेकिन इस मामले में log
सार्वजनिक विधि है और किसी को भी इसका इस्तेमाल कर सकते हैं। लेकिन मैं इसे निजी बनाना चाहता हूं, लेकिन प्रोटोटाइप में घोषित विधियों में अभी भी उपलब्ध हूं। इसके लिए हमें बंद करने की आवश्यकता होगी। कोड इस
var closureStd = (function(){
var std = function(){};
var log = function(msg){ console.log("I'm really private, youhooo!" + msg) };
std.prototype = {
logInfo: function(msg){
log(msg);
}
};
return std;
})();
तो मेरे सवाल में बदल जाएगा: क्या std
और closureStd
और के बीच अंतर है क्या है कीमत मैं प्रोटोटाइप से निजी तरीकों कॉल करने के लिए सक्षम होने के लिए भुगतान करने की जरूरत?
मददगार लिंक: यहाँ निर्माता कार्यों के प्रयोग पर
अधिक जानकारी [गोपनीयता की लागत] (http://blog.jcoglan.com/2012/01/19/the-cost-of- गोपनीयता /) और [जावास्क्रिप्ट मॉड्यूल पैटर्न] (http://briancray.com/posts/javascript-module-pattern) –
दिलचस्प लेख के लिए धन्यवाद। यह मुझे कुछ अंक प्राप्त करता है, लेकिन सवाल का जवाब न दें ( – Ph0en1x
क्षमा करें, ध्यान दें कि आप दूसरा लेख जोड़ते हैं। इसे पढ़ने की आवश्यकता है। – Ph0en1x