Object Initializer

Object Initializer به شما اجازه می‌دهد، خاصیت‌های یک کلاس را به راحتی مقداردهي کنيد. اگر به عنوان مثال چندين خاصيت داشته باشيد و نخواهيد که يک سازنده را جهت مقداردهي به آنها تعريف کنيد، می‌توانید از object initializer استفاده نماييد. همانطور که در درس های قبل توضیح داده شد، خاصیت های یک کلاس به دو روش مقداردهی می شوند. یا با ایجاد شیء از کلاس مثل کد زیر :

class Sample
{
    Property1;
    Property2;
    Property3;
}

var sampleClass = new Sample();
sampleClass.Property1 = 100;
sampleClass.Property2 = "Sample";
sampleClass.Property3 = true;

یا با استفاده از سازنده کلاس، مانند کد زیر:

class Sample
{
    Property1;
    Property2;
    Property3;

    constructor(p1, p2, p3)
    {
        this.Property1 = p1;
        this.Property2 = p2;
        this.Property3 = p3;
    }
}

var sampleClass = new Sample(100, "Sample", true);

با استفاده از object initializers می‌توان کد را ساده‌تر کرد :

Sample = {
            Property1:100, 
            Property2:"Sample", 
            Property3:true
         }

مشاهده می‌کنید که، لازم نیست از کلمه کلیدی class برای تعریف کلاس استفاده کنید. برای مقداردهی به خاصیت ها از علامت دو نقطه استفاده می کنیم. به اين نکته نيز توجه کنيد که خواص به وسيله کاما از هم جدا می‌شوند. می‌توان از object initializers تو در تو نيز استفاده نمود. فرض کنيد کلاس Sample مان يک خاصيت به نام Property4 که داراي دو خاصيت Name و Age هست را دارا می‌باشد.

Sample = {
            Property1:100, 
            Property2:"Sample", 
            Property3:true,
            Property4:{ Name :"Kitty", Age:3 }
         }

در کد بالا، Property4 خود یک Object است و دارای دو خاصیت می باشد و برای دسترسی به خاصیت Name آن باید به صورت زیر عمل کنید:

console.log(Sample.Property4.Name);
Kitty