ईएक्स 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ईवेंट टारगेट के संदर्भ में इवेंट को पास करने और मैन्युअल रूप से टारगेट खोजने की तुलना में बहुत स्पष्ट है । मैंने एरो फ़ंक्शंस के साथ ज्यादा नहीं खेला है, लेकिन ऐसा लगता है कि यह अनाम फ़ंक्शंस के साथ आगे और पीछे जाने के लिए भ्रामक होगा।