ईएक्स 6 एरो फंक्शंस का इस्तेमाल करना लेक्सिकल this
बाइंडिंग के साथ बढ़िया है।
हालाँकि, मैं एक समय पहले एक विशेष jQuery क्लिक बंधन के साथ इसका उपयोग कर एक मुद्दे में भाग गया:
class Game {
foo() {
self = this;
this._pads.on('click', function() {
if (self.go) { $(this).addClass('active'); }
});
}
}
इसके बजाय एक तीर फ़ंक्शन का उपयोग करना:
class Game {
foo() {
this._pads.on('click', () => {
if (this.go) { $(this).addClass('active'); }
});
}
}
और फिर $(this)
ES5 में परिवर्तित हो जाता है (आत्म = यह) प्रकार बंद।
एक तरीका है ट्रेसेर को लेक्सिकल बाइंडिंग के लिए "$ (यह)" अनदेखा करना है?
.on()
पड़ता है क्योंकि वास्तव मेंthis
आपके लिए उपयोगी मूल्य है। मेरे लिए यहthis
ईवेंट टारगेट के संदर्भ में इवेंट को पास करने और मैन्युअल रूप से टारगेट खोजने की तुलना में बहुत स्पष्ट है । मैंने एरो फ़ंक्शंस के साथ ज्यादा नहीं खेला है, लेकिन ऐसा लगता है कि यह अनाम फ़ंक्शंस के साथ आगे और पीछे जाने के लिए भ्रामक होगा।