𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗖𝗼𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗼𝗿 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻𝘀
একটি কনস্ট্রাক্টর ফাংশন (constructor function) হলো অবজেক্টের একটি ব্লুপ্রিন্ট বা নকশা। একই কাঠামোর অনেকগুলো অবজেক্ট তৈরি করতে এটি ব্যবহার করুন।
এটি যেভাবে কাজ করে:
একটি কনস্ট্রাক্টর ফাংশন কল করার জন্য আপনি new কিওয়ার্ড ব্যবহার করেন। এই প্রক্রিয়াটি চারটি কাজ করে:
- এটি একটি খালি অবজেক্ট তৈরি করে।
- এটি
this-কে সেই নতুন অবজেক্টের দিকে নির্দেশ করতে সেট করে। - এটি ফাংশনের ভেতরের কোডটি কার্যকর করে।
- এটি নতুন অবজেক্টটি রিটার্ন করে।
Example code:
function Employee(name, salary) {
this.name = name;
this.salary = salary;
}
const emp1 = new Employee("Saravanan", 50000);
অনুসরণ করার নিয়মাবলী:
- ফাংশনের নাম বড় হাতের অক্ষর (capital letter) দিয়ে শুরু করুন।
- নতুন অবজেক্টে প্রপার্টি অ্যাসাইন করতে
thisব্যবহার করুন।
this-এর ভূমিকা:
একটি কনস্ট্রাক্টরের ভেতরে, this বলতে আপনি যে নির্দিষ্ট অবজেক্টটি তৈরি করছেন তাকে বোঝায়। উদাহরণস্বরূপ, this.name = name প্যারামিটার ভ্যালুটিকে অবজেক্ট প্রপার্টিতে অ্যাসাইন করে।
মেথড (methods) যোগ করা:
আপনি একটি কনস্ট্রাক্টরের ভেতরে ফাংশন যোগ করতে পারেন যাতে প্রতিটি অবজেক্ট সেগুলো ব্যবহার করতে পারে।
function Employee(name, salary) {
this.name = name;
this.salary = salary;
this.displayInfo = function() {
console.log(this.name + " earns " + this.salary);
};
}
মেমরি দক্ষতা (Memory efficiency):
আপনি যদি সরাসরি কনস্ট্রাক্টরে মেথড যোগ করেন, তবে প্রতিটি অবজেক্ট তার নিজস্ব কপি পায়। এতে বেশি মেমরি খরচ হয়।
এর পরিবর্তে, প্রোটোটাইপ (prototype) ব্যবহার করুন। প্রোটোটাইপে একটি মেথড যোগ করলে সেটি সমস্ত অবজেক্টের মধ্যে একটি মাত্র কপি শেয়ার করে।
Employee.prototype.greet = function() {
console.log("Hello " + this.name);
};
সারসংক্ষেপ:
- একটি মাত্র অবজেক্টের জন্য অবজেক্ট লিটারেল (object literals) ব্যবহার করুন।
- একই কাঠামোর একাধিক অবজেক্টের জন্য কনস্ট্রাক্টর ফাংশন ব্যবহার করুন।
Source: https://www.w3schools.com/js/js_object_constructors.asp Source: https://www.geeksforgeeks.org/javascript/javascript-function-constructor/ Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function
Post link: https://dev.to/dev_saravanan_journey/javascript-constructor-functions-k6k