JavaScript-এ Object Constructors
JavaScript constructor আপনাকে দক্ষতার সাথে অবজেক্ট তৈরি করতে সাহায্য করে। আপনি একই কাঠামোর অনেকগুলো অবজেক্ট তৈরি করতে এগুলো ব্যবহার করতে পারেন।
Constructor Functions
Constructor হলো অবজেক্ট ইনিশিয়ালাইজ (initialize) করার জন্য একটি ফাংশন। এটি কল করার জন্য new কিওয়ার্ড ব্যবহার করুন। আপনি যদি new কিওয়ার্ডটি ব্যবহার করতে ভুলে যান, তবে ফাংশনটি প্রত্যাশিতভাবে কাজ করবে না।
Constructor-এর নাম সব সময় একটি বড় হাতের অক্ষর (capital letter) দিয়ে শুরু করুন। এটি আপনাকে সাধারণ ফাংশন থেকে এদের আলাদা করতে সাহায্য করবে।
উদাহরণ:
- Person(name, age)
Object.create()
আপনি একটি বিদ্যমান অবজেক্টকে প্রোটোটাইপ (prototype) হিসেবে ব্যবহার করে নতুন অবজেক্ট তৈরি করতে Object.create() ব্যবহার করতে পারেন। এই পদ্ধতিটি অবজেক্টগুলোর মধ্যে ইনহেরিটেন্স (inheritance) স্থাপন করে।
Default Values
আপনি আপনার constructor-এ ডিফল্ট মান সেট করতে পারেন। এটি নিশ্চিত করে যে আপনার অবজেক্টগুলোতে সব সময় সঠিক ডেটা থাকে। আপনি যদি কোনো মান প্রদান না করেন, তবে constructor ডিফল্ট মানটি ব্যবহার করবে।
উদাহরণ:
function Person(name = "Unknown", age = 0) {
this.name = name;
this.age = age;
}
Prototypes এবং Memory
একটি প্রোটোটাইপে মেথড (method) যোগ করলে মেমরি সাশ্রয় হয়। প্রতিটি অবজেক্টের নিজস্ব ফাংশন কপি থাকার পরিবর্তে, তারা সবাই প্রোটোটাইপ থেকে একটি সংস্করণ শেয়ার করে।
উদাহরণ:
Person.prototype.greet = function() {
console.log("Hello " + this.name);
};
Inheritance
Class ব্যবহারের মাধ্যমে একটি ক্লাস অন্য একটি ক্লাস থেকে ইনহেরিট করতে পারে। প্যারেন্ট constructor কল করার জন্য super() কিওয়ার্ড ব্যবহার করুন। এটি চাইল্ড ক্লাসগুলোকে প্যারেন্ট ক্লাসের প্রপার্টি এবং মেথড ব্যবহার করতে সাহায্য করে।
কেন constructor ব্যবহার করবেন?
- Reusability: একটি টেমপ্লেট থেকে অনেক অবজেক্ট তৈরি করা।
- Organization: অবজেক্ট সেটআপের লজিক এক জায়গায় রাখা।
- Initialization: তৈরির সময় সাথে সাথে নির্দিষ্ট মান সেট করা।
- Inheritance: সহজ অবজেক্ট থেকে জটিল অবজেক্ট তৈরি করা।
- Maintenance: আপনার কোড পড়া এবং পরিচালনা করা সহজ করে তোলে।
Source: https://www.geeksforgeeks.org/javascript/js-constructor-method/ Source: https://www.w3schools.com/js/js_object_constructors.asp
Full post: https://dev.to/kamalesh_ar_6252544786997/object-constructors-in-javascript-2e96