ES6 (ECMAScript 2015) এ Computed Property Names ফিচারটি পরিচিতি পেয়েছে, যা আপনাকে অবজেক্টের প্রোপার্টির নামের জন্য ডাইনামিকভাবে এক্সপ্রেশন ব্যবহার করতে দেয়। এর মাধ্যমে আপনি অবজেক্টের প্রোপার্টি নাম হিসেবে ভ্যারিয়েবল, এক্সপ্রেশন বা কোনো ফাংশন রিটার্ন ভ্যালু ব্যবহার করতে পারবেন।
Computed Property Names এর সিনট্যাক্স
Computed Property Names ব্যবহার করতে হলে, আপনি অবজেক্টের প্রোপার্টি নামের আগে [] (ব্র্যাকেট) ব্যবহার করবেন। এই ব্র্যাকেটের ভিতরে আপনি যেকোনো এক্সপ্রেশন লিখতে পারেন, যেটি একটি বৈধ প্রোপার্টি নাম হিসেবে রেজাল্ট দিবে।
উদাহরণ:
const propName = "age";
const person = {
[propName]: 30
};
console.log(person.age); // 30
এখানে, propName ভ্যারিয়েবলটি age স্ট্রিং ধারণ করছে, এবং [propName] ব্যবহার করে সেই প্রোপার্টি অবজেক্টে তৈরি করা হয়েছে।
উদাহরণ সহ ব্যাখ্যা
1. ডাইনামিক প্রোপার্টি নাম
আপনি যেকোনো ডাইনামিক এক্সপ্রেশন ব্যবহার করে প্রোপার্টি নাম তৈরি করতে পারেন। যেমন ভ্যারিয়েবল, কনস্ট্যান্ট বা যেকোনো ক্যালকুলেশন।
const num1 = 10;
const num2 = 20;
const sum = {
[`sum_${num1}_${num2}`]: num1 + num2
};
console.log(sum.sum_10_20); // 30
এখানে, প্রোপার্টি নাম sum_10_20 ডাইনামিকভাবে তৈরি করা হয়েছে, এবং তার মান হিসেবে num1 + num2 এর ফলাফল ৩০ দেওয়া হয়েছে।
2. ফাংশন বা এক্সপ্রেশন ব্যবহার করা
এক্সপ্রেশন বা ফাংশন রিটার্ন ভ্যালু দিয়েও প্রোপার্টি নাম নির্ধারণ করা যেতে পারে।
const obj = {
[`${2 + 3}`]: "five"
};
console.log(obj['5']); // "five"
এখানে, ${2 + 3} এর মাধ্যমে প্রোপার্টি নাম হিসেবে "5" রিটার্ন হচ্ছে, এবং "five" মান হিসাবে সেট করা হচ্ছে।
অন্য একটি উদাহরণ: অবজেক্টে মেথড যুক্ত করা
Computed Property Names ব্যবহার করে আপনি অবজেক্টে মেথডও তৈরি করতে পারেন, যেখানে মেথডের নাম ডাইনামিকভাবে নির্ধারণ করা হয়।
const dynamicMethodName = "greet";
const person = {
[dynamicMethodName]() {
console.log("Hello!");
}
};
person.greet(); // "Hello!"
এখানে, dynamicMethodName ভ্যারিয়েবলটি greet ধারণ করছে এবং সেটি ব্যবহার করে একটি মেথড ডাইনামিকভাবে তৈরি করা হয়েছে।
Computed Property Names এর সুবিধা
- ডাইনামিক প্রোপার্টি নাম: আপনি চাইলে অবজেক্টের প্রোপার্টি নাম ডাইনামিকভাবে নির্ধারণ করতে পারবেন, যা সাধারণভাবে সম্ভব ছিল না।
- কনফিগারযোগ্য কোড: কোড আরও কনফিগারযোগ্য এবং পড়তে সুবিধাজনক হয়, কারণ আপনি স্ট্যাটিক প্রোপার্টি নামের পরিবর্তে ডাইনামিক এক্সপ্রেশন ব্যবহার করতে পারেন।
- কমপ্লেক্স অবজেক্ট এবং ফাংশন তৈরি: ফাংশন বা এক্সপ্রেশন ব্যবহার করে আরও জটিল অবজেক্ট এবং মেথড তৈরি করা সহজ হয়ে যায়।
উপসংহার
Computed Property Names ES6 এর একটি শক্তিশালী ফিচার, যা অবজেক্টে ডাইনামিক প্রোপার্টি নাম নির্ধারণের সুবিধা দেয়। এটি কোডের ফ্লেক্সিবিলিটি এবং কনফিগারেবিলিটি বাড়িয়ে দেয়, এবং একাধিক ক্ষেত্রে বিশেষভাবে উপকারী, যেমন অবজেক্টের প্রোপার্টি নাম নির্ধারণ করা যেটি রানটাইমে পরিবর্তিত হতে পারে।
Read more