আমি টাইপস্ক্রিপ্টে "এটি" এর স্কোপিং পরিচালনা করার জন্য সর্বোত্তম পদ্ধতির বিষয়ে নিশ্চিত নই।
আমি কোডকে টাইপস্ক্রিপ্টে রূপান্তর করছি এমন একটি সাধারণ প্যাটার্নের উদাহরণ এখানে:
class DemonstrateScopingProblems {
private status = "blah";
public run() {
alert(this.status);
}
}
var thisTest = new DemonstrateScopingProblems();
// works as expected, displays "blah":
thisTest.run();
// doesn't work; this is scoped to be the document so this.status is undefined:
$(document).ready(thisTest.run);
এখন, আমি কলটিতে পরিবর্তন করতে পারি ...
$(document).ready(thisTest.run.bind(thisTest));
... যা কাজ করে। তবে এটা ভয়াবহ। এর অর্থ হ'ল কোডগুলি কিছু কিছু পরিস্থিতিতে সংকলন করতে এবং সূক্ষ্মভাবে কাজ করতে পারে তবে আমরা যদি সুযোগটি বেঁধে রাখতে ভুলে যাই তবে এটি ভেঙে যাবে।
আমি ক্লাসের মধ্যে এটি করার একটি উপায় চাই, যাতে ক্লাসটি ব্যবহার করার সময় আমাদের "এই" কী থেকে যায় তা নিয়ে চিন্তা করার দরকার নেই।
কোনও পরামর্শ?
হালনাগাদ
আর একটি পদ্ধতি যা কাজ করে তা হ'ল চর্বিযুক্ত তীর:
class DemonstrateScopingProblems {
private status = "blah";
public run = () => {
alert(this.status);
}
}
এটি কি বৈধ পন্থা?