ক্লাস থেকে সরাসরি ক্লাসের নাম পাওয়া
পূর্ববর্তী উত্তরগুলি ব্যাখ্যা করেছে যে someClassInstance.constructor.nameঠিক কাজ করে, তবে আপনার যদি প্রোগ্রামিকভাবে শ্রেণিক নামটিকে স্ট্রিংয়ে রূপান্তর করতে হয় এবং কেবলমাত্র এর জন্য কোনও উদাহরণ তৈরি করতে না চান তবে মনে রাখবেন:
typeof YourClass === "function"
এবং, যেহেতু প্রতিটি ফাংশনের একটি nameসম্পত্তি থাকে, তাই আপনার শ্রেণীর নামের সাথে একটি স্ট্রিং পাওয়ার আরও একটি দুর্দান্ত উপায় হ'ল:
YourClass.name
নিম্নলিখিতগুলি কেন এটি কার্যকর তার একটি ভাল উদাহরণ।
ওয়েব উপাদান লোড হচ্ছে
হিসাবে MDN ডকুমেন্টেশন আমাদের শিক্ষা দেয়, কিভাবে এই আপনি একটি ওয়েব উপাদান লোড হল:
customElements.define("your-component", YourComponent);
YourComponentএকটি ক্লাস যেখানে থেকে প্রসারিত হয় HTMLElement। যেহেতু উপাদানগুলির নিজের ট্যাগের পরে আপনার উপাদানটির শ্রেণিটির নামকরণ করা ভাল অনুশীলন হিসাবে বিবেচিত হয়, তাই কোনও সহায়ক ফাংশন লিখতে ভাল লাগবে যা আপনার সমস্ত উপাদানগুলি তাদের নিবন্ধীকৃত করতে ব্যবহার করতে পারে। সুতরাং এখানে যে ফাংশন:
function registerComponent(componentClass) {
const componentName = upperCamelCaseToSnakeCase(componentClass.name);
customElements.define(componentName, componentClass);
}
সুতরাং আপনাকে যা করতে হবে তা হ'ল:
registerComponent(YourComponent);
যা দুর্দান্ত কারণ এটি নিজেই উপাদান লেখার চেয়ে ত্রুটি-প্রবণতা কম। এটিকে মোড়ানোর জন্য, এটি upperCamelCaseToSnakeCase()ফাংশন:
// converts `YourString` into `your-string`
function upperCamelCaseToSnakeCase(value) {
return value
// first char to lower case
.replace(/^([A-Z])/, $1 => $1.toLowerCase())
// following upper chars get preceded with a dash
.replace(/([A-Z])/g, $1 => "-" + $1.toLowerCase());
}
instance.constructor.nameএবংclass.nameযথাযথ ES6 এ শ্রেণীর নামটি ফিরিয়ে দিন।