में 'इस' संदर्भ को संरक्षित करें this
ऑब्जेक्ट के प्रोटोटाइप के अंदर संग्रहीत ईवेंट हैंडलर में जावास्क्रिप्ट संदर्भ को संरक्षित करने का सही तरीका क्या है? मैं '_this' या 'that' जैसे temp vars बनाने से दूर रहना चाहता हूं और मैं jQuery जैसे ढांचे का उपयोग नहीं कर सकता। मैंने देखा कि बहुत से लोग 'बाइंड' फ़ंक्शन का उपयोग करने के बारे में बात करते हैं लेकिन मेरे दिए गए परिदृश्य में इसे कार्यान्वित करने के बारे में अनिश्चित था।जावास्क्रिप्ट प्रोटोटाइप ईवेंट हैंडलर
var Example = function(foo,bar){
this.foo = foo;
this.bar = bar;
};
Example.prototype.SetEvent = function(){
this.bar.onclick = this.ClickEvent;
};
Example.prototype.ClickEvent = function(){
console.log(this.foo); // logs undefined because 'this' is really 'this.bar'
};
मैं * उस "(ला लाकॉकफ़ोर्ड) नामक संदर्भ बनाने से नफरत करता हूं। मैं "उदाहरण" (एक ला Stefanov), या "मुझे" (एक ला ExtJS) –
वास्तव में, मुझे 'इस संदर्भ' बनाने से नफरत है, इससे कोई फर्क नहीं पड़ता कि वे कैसे नामित हैं। लेकिन सहमत हैं, 'वह' सबसे अच्छा नामकरण नहीं है। –
मैं 'स्वयं' का उपयोग करता हूं, लेकिन हाल ही में पाया गया है कि वेबवर्कर्स में शीर्ष-स्तरीय संपत्ति के साथ एक नाम संघर्ष है। ऐसा नहीं है कि आपके पास एक ही नाम नहीं हो सकता है, लेकिन यह चीजों को भ्रमित करता है। साथ ही, मुझे 'यह' – Matt