मेरे सहयोगी जावास्क्रिप्ट में नई वस्तुओं को परिभाषित करने के लिए "कम मामले" च "के साथ" नए फ़ंक्शन () "का उपयोग कर रहे हैं। यह सभी प्रमुख ब्राउज़रों में अच्छा काम करता है और यह निजी चर को छुपाने में काफी प्रभावी भी लगता है। यहाँ एक उदाहरण है:
var someObj = new function () {
var inner = 'some value';
this.foo = 'blah';
this.get_inner = function () {
return inner;
};
this.set_inner = function (s) {
inner = s;
};
};
जैसे ही "इस" का उपयोग किया जाता है, यह someObj की सार्वजनिक संपत्ति बन जाता है। तो कुछObj.foo, someObj.get_inner () और someObj.set_inner () सभी सार्वजनिक रूप से उपलब्ध हैं। इसके अलावा, set_inner () और get_inner () विशेषाधिकार प्राप्त तरीके हैं, इसलिए उनके पास क्लोजर के माध्यम से "आंतरिक" तक पहुंच है।
हालाँकि, मैंने कहीं भी इस तकनीक का कोई संदर्भ नहीं देखा है। यहां तक कि डगलस क्रॉफोर्ड की JSLint इसके बारे में शिकायत करती है:
- अजीब निर्माण। 'नया' हटाएं
हम उत्पादन में इस तकनीक का उपयोग कर रहे हैं और यह अच्छी तरह से काम कर रहा है, लेकिन मैं इसके बारे में थोड़ा चिंतित हूं क्योंकि यह कहीं भी प्रलेखित नहीं है। किसी को पता है कि क्या यह एक वैध तकनीक है?
this
उस ईवेंट को संदर्भित करेगा , जो ईवेंट को निकाल दिया गया था, आपकी वस्तु नहीं, बल्कि आपvar instance = this
इसके बजाय बस हो सकते हैं ।