JavaScript-এ Object Constructors
আপনার একই ধরণের অনেক অবজেক্ট তৈরি করার প্রয়োজন হতে পারে। JavaScript এটি দক্ষতার সাথে করার জন্য বেশ কিছু উপায় প্রদান করে।
Constructor Functions
একটি constructor হলো এমন একটি function যা নতুন অবজেক্ট সেটআপ করতে ব্যবহৃত হয়। ভুল এড়াতে এই নিয়মগুলো অনুসরণ করুন:
- Function-এর নামের প্রথম অক্ষরটি Capitalize করুন। এটি আপনাকে এটিকে একটি constructor হিসেবে চিনতে সাহায্য করবে।
newkeyword ব্যবহার করুন। আপনি যদি এটি ভুলে যান, তবে function-টি একটি সাধারণ function-এর মতো চলবে এবং অবজেক্ট তৈরি করতে ব্যর্থ হবে।
Default Values
আপনি আপনার constructor-এ default values সেট করতে পারেন। এটি নিশ্চিত করে যে আপনি কিছু তথ্য বাদ দিলেও আপনার অবজেক্টগুলো সঠিক থাকবে।
Example:
function Person(name = "Unknown", age = 0) {
this.name = name;
this.age = age;
}
আপনি যদি new Person() কল করেন, তবে name হবে "Unknown" এবং age হবে 0।
Object.create()
একটি বিদ্যমান অবজেক্টের ওপর ভিত্তি করে নতুন অবজেক্ট তৈরি করতে আপনি Object.create() ব্যবহার করতে পারেন। এটি prototype-based inheritance ব্যবহার করে। ডেটা কপি করার পরিবর্তে, নতুন অবজেক্টটি মূল prototype-এর সাথে যুক্ত থাকে।
Memory Optimization
Constructor-এর ভেতরে সরাসরি method না রাখাই ভালো। আপনি যদি তা করেন, তবে প্রতিটি নতুন অবজেক্ট সেই method-এর নিজস্ব কপি পাবে। এতে মেমরি অপচয় হয়।
এর পরিবর্তে, prototype-এ method যোগ করুন। এভাবে, সমস্ত অবজেক্ট একটি মাত্র method শেয়ার করতে পারবে।
Example:
Person.prototype.greet = function() {
console.log("Hello " + this.name);
};
Inheritance
Classes একটি ক্লাসকে অন্য একটি ক্লাস থেকে inherit করার সুযোগ দেয়। Parent constructor কল করার জন্য একটি child class-এ super() keyword ব্যবহার করুন। এটি child class-কে parent-এর properties অ্যাক্সেস করতে সাহায্য করে।
Constructor ব্যবহারের সুবিধাগুলো:
- Reusable code: একটি প্যাটার্ন ব্যবহার করে অনেক অবজেক্ট তৈরি করা যায়।
- Clean logic: অবজেক্ট সেটআপ এক জায়গায় রাখা যায়।
- Easy initialization: তৈরির সময় নির্দিষ্ট মান সেট করা যায়।
- Inheritance: সহজ অবজেক্ট থেকে জটিল অবজেক্ট তৈরি করা যায়।
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