का उपयोग करते समय ईवेंट विधियों में "यह" कीवर्ड मैं एक ईवेंट हैंडलर में जावास्क्रिप्ट में प्रोटोटाइप क्लास के सदस्य चरों तक पहुंचने का प्रयास कर रहा हूं - कुछ ऐसा जो मैं आमतौर पर "इस" कीवर्ड का उपयोग करता हूं (या इवेंट हैंडलर के मामले में "वह" [इसकी प्रतिलिपि])। कहने की जरूरत नहीं है, मैं कुछ परेशानी में भाग रहा हूँ।जावास्क्रिप्ट प्रोटोटाइप ऑब्जेक्ट
उदाहरण के लिए, इस HTML स्निपेट:
<a id="myLink" href="#">My Link</a>
और यह जावा स्क्रिप्ट कोड:
function MyClass()
{
this.field = "value"
this.link = document.getElementById("myLink");
this.link.onclick = this.EventMethod;
}
MyClass.prototype.NormalMethod = function()
{
alert(this.field);
}
MyClass.prototype.EventMethod = function(e)
{
alert(this.field);
}
एक MyClass वस्तु instantiating और NormalMethod बुला वास्तव में काम करता है जैसे मैं इसे करने के लिए (चेतावनी कहा, "उम्मीद मान "), लेकिन लिंक परिणामों को एक अपरिभाषित मान में क्लिक करना क्योंकि" यह "कीवर्ड अब ईवेंट लक्ष्य (एंकर() HTML तत्व का संदर्भ देता है)।
मैं प्रोटोटाइप जावास्क्रिप्ट शैली के लिए नए हूँ, लेकिन अतीत में, बंद के साथ, मैं बस "इस" निर्माता में की एक प्रतिलिपि बना दिया है:
var that = this;
और फिर मैं सदस्यों को एक्सेस कर सका "उस" ऑब्जेक्ट के माध्यम से ईवेंट विधियों में चर। ऐसा प्रोटोटाइप कोड के साथ काम नहीं प्रतीत होता है। क्या यह हासिल करने का कोई और तरीका है?
धन्यवाद।
आप प्रोटोटाइप पुस्तकालय के लिए या बल्कि सीधे जावास्क्रिप्ट प्रोटोटाइप कक्षाएं जिक्र कर रहे हैं: यह सवाल एक और तो सवाल जो पूरे प्रोटोटाइप पुस्तकालय को शामिल किए बिना बाँध विधि के कार्यान्वयन के साथ यहाँ उत्तर दिया जाता है का डुप्लिकेट है? –
तीन साल देर से जवाब दे रहा है :) लेकिन वंशावली के लिए: मैं सीधे जावास्क्रिप्ट प्रोटोटाइपिकल कक्षाओं का जिक्र कर रहा था। – Michael
संभावित डुप्लिकेट [कॉलबैक के अंदर सही 'इस'/संदर्भ को कैसे एक्सेस करें?] (Http://stackoverflow.com/q/20279484/1048572)? – Bergi