سازندههای شیء در JavaScript
شما اغلب نیاز دارید اشیاء زیادی از یک نوع مشابه ایجاد کنید. JavaScript چندین روش برای انجام این کار در اختیار شما قرار میدهد.
توابع سازنده (Constructor Functions)
یک سازنده (constructor)، تابعی ویژه برای ساخت و تنظیم اشیاء است. برای فراخوانی آن از کلمه کلیدی new استفاده کنید. همیشه نام تابع را با حرف بزرگ شروع کنید؛ این کار به شما کمک میکند آن را از توابع معمولی تشخیص دهید.
اگر کلمه کلیدی new را فراموش کنید، تابع مانند یک تابع استاندارد عمل کرده و در ایجاد یک شیء صحیح شکست میخورد.
مقادیر پیشفرض (Default Values)
شما میتوانید مقادیر پیشفرض را در سازنده خود تنظیم کنید. این کار تضمین میکند که اشیاء شما حتی اگر آرگومانی را فراموش کردید، همیشه دارای دادههای معتبر باشند.
مثال: function Person(name = "Unknown", age = 0) { this.name = name; this.age = age; }
پروتوتایپها و حافظه (Prototypes and Memory)
افزودن متدها به یک پروتوتایپ (prototype) هوشمندانهتر از افزودن مستقیم آنها به یک سازنده است. وقتی از پروتوتایپ استفاده میکنید، تمام نمونهها (instances) از یک متد واحد استفاده میکنند. این کار باعث صرفهجویی در حافظه میشود، زیرا کامپیوتر برای هر شیء جدید، متد را دوباره ایجاد نمیکند.
Object.create()
این متد یک شیء جدید را با استفاده از یک شیء موجود به عنوان پروتوتایپ خود ایجاد میکند. این کار بدون نیاز به سازنده، وراثت را برقرار میکند. شیء جدید میتواند به ویژگیهای (properties) شیء اصلی دسترسی داشته باشد.
وراثت کلاسها (Class Inheritance)
جاوااسکریپت مدرن از کلاسها برای مدیریت وراثت استفاده میکند. شما میتوانید یک کلاس فرزند ایجاد کنید که از یک کلاس والد ارثبری میکند (extends). از کلمه کلیدی super() برای انتقال دادهها از فرزند به والد استفاده کنید. این کار به فرزند اجازه میدهد تا در عین افزودن ویژگیهای منحصربهفرد خود، از ویژگیهای والد نیز استفاده کند.
چرا از سازندهها استفاده کنیم؟
- کد قابل استفاده مجدد: ایجاد سریع اشیاء مشابه بسیار زیاد.
- کپسولهسازی (Encapsulation): نگه داشتن منطق تنظیمات شیء در یک مکان.
- مقداردهی اولیه آسان: تنظیم مقادیر خاص در هنگام ایجاد.
- وراثت: ساخت اشیاء پیچیده از اشیاء سادهتر.
- کد تمیز: سازماندهی منطق و خوانایی آسان کد.
منبع: https://www.geeksforgeeks.org/javascript/js-constructor-method/ منبع: https://www.w3schools.com/js/js_object_constructors.asp پست کامل: https://dev.to/kamalesh_ar_6252544786997/object-constructors-in-javascript-2e96
انجمن یادگیری اختیاری: https://t.me/GyaanSetuAi