टाइपस्क्रिप्ट में, यदि आप एक फ़ंक्शन का उपयोग करके परिभाषित करते हैं () => {...}
, द this
चर आसपास के वर्ग के उदाहरण को संदर्भित करेगा। लेकिन अगर आप उपयोग करते हैं function () {...}
, द this
चर की अपनी पुरानी जावास्क्रिप्ट व्याख्या होगी।
क्या इन दोनों को एक्सेस करने का कोई तरीका है this
टाइपस्क्रिप्ट फ़ंक्शन के भीतर चर?
टाइपस्क्रिप्ट में JQuery का उपयोग करते समय मुझे कभी-कभी इसकी आवश्यकता होती है:
class X {
private v : string;
constructor() {
$(".xyz").on("change", function() {
this.v = $(this).prop("value"); // Two different this"s
})
}
}
कोड में केंद्रीय पंक्ति में, पहला this
दसवीं कक्षा के ऑब्जेक्ट को संदर्भित करना चाहिए, जबकि दूसरा this
घटना को ट्रिगर करने वाले JQuery ऑब्जेक्ट को संदर्भित करना चाहिए।
उत्तर:
जवाब के लिए 5 № 1में change
आयोजन प्रबंधकर्ता this
का उल्लेख करेंगे .xyz
तत्व जिसने केवल घटना को उठाया। यदि आप युक्त के लिए एक संदर्भ चाहते हैं X
वर्ग तब आपको उस संदर्भ की तरह एक चर संग्रहित करने की आवश्यकता होती है, जैसे:
class X {
private v : string;
constructor() {
var _x = this;
$(".xyz").on("change", function() {
_x.v = $(this).prop("value");
})
}
}