লেসিকাল this
বাইন্ডিং সহ ES6 তীর ফাংশন ব্যবহার করা দুর্দান্ত।
যাইহোক, আমি একটি সাধারণ 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
কাছে ইভেন্টটি পাস করার ও ম্যানুয়ালি টার্গেটটি সন্ধান করার চেয়ে ইভেন্ট টার্গেটের উল্লেখের সাথে এটি আরও পরিষ্কার । আমি তীর ফাংশনগুলির সাথে খুব বেশি খেলিনি তবে মনে হচ্ছে এটি বেনামে ফাংশনগুলি নিয়ে পিছনে যেতে বিভ্রান্ত হবে।