ক্লাস থেকে সরাসরি ক্লাসের নাম পাওয়া
পূর্ববর্তী উত্তরগুলি ব্যাখ্যা করেছে যে 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 এ শ্রেণীর নামটি ফিরিয়ে দিন।