آشنایی با دیتا تایپ آبجکت در زبان برنامه نویسی جاوا اسکریپت


زبان برنامه نویسی جاوا اسکریپت یک زبان Object-oriented یا «شیء گرا» است، بدان معنا که آبجکت ها بخش اصلی آن را تشکیل می دهند و به نوعی، هسته ی اصلی جاوا اسکریپت محسوب می شوند. اگر بتوانیم بر مفهوم و کاربرد آبجکت ها در جاوا اسکریپت مسلط شویم، تقریباً بر بخش عظیمی از این زبان تسلط پیدا کرده‌ایم.

اگر بخواهیم آبجکت ها را به شکلی ساده بیان کنیم، می توان گفت که یک آبجکت، مجموعه ای از سایر دیتا تایپ هاست که به صورت خاصی تعریف و فراخوانی می شوند. اما منظور از نوع خاصی از تعریف چیست؟ برای روشن تر شدن این مسئله، ابتدا یک مثال از دنیای واقعی می زنیم:

در دنیای واقعی، خودروی کامارو اصطلاحا یک Object (آبجکت یا شیء) است. کامارویی که در تصویر فوق مشاهده می کنیم، دارای یکسری Property (پِراپِرتی یا مشخصه) همچون رنگ، سال تولید، قدرت موتور و ... است. این خودرو علاوه بر این پراپرتی ها، دارای یکسری عملکرد نیز هست که تحت عنوان Method (متد) شناخته می شوند که از آن جمله می توان به ترمز کردن، روشن شدن، گاز دادن و ... اشاره کرد.

در دنیای واقعی تمامی خودرو ها کمابیش از پراپرتی های یکسانی برخوردارند؛ مثلا هر خودرویی دارای رنگ، سال تولید، قدرت موتور و ... است اما این در حالی است که Value یا مقدار این پراپرتی ها از خودرویی به خودروی دیگر متفاوت است. مثلا رنگ این کامارو سفید است و مدل 2016 است اما یک خودروی دیگر ممکن است زرد رنگ بوده و سال تولید آن 2014 باشد.

علاوه بر این، تمامی خودروها از متدهای کمابیش یکسانی برخوردارند؛ هر خودرویی می تواند روشن شود، خاموش شود، ترمز کند و ... اما زمان اجرای این متدها از خودرویی به خودروی دیگر متفاوت است؛ به عبارت دیگر، تمامی خودروهای روی کره ی زمین یک زمان واحد روشن و خاموش نمی شوند.

با این مثال، حال قصد داریم تا مفهوم آبجکت در زبان برنامه نویسی جاوا اسکریپت را بررسی کنیم. پیش از این با مفهوم متغیرها آشنا شدیم. آبجکت ها هم نوعی متغیر هستند اما با این تفاوت که می توانند چندین Value یا مقدار را در خود ذخیره سازند. همچون مثال کامارو، درون یک آبجکت در برنامه نویسی هم اعضایی به نام Property (پِراپِرتی یا مشخصه) وجود دارند که حتماً دارای نام و مقدار (هر دو با هم) هستند. مقدار یک پراپرتی، می تواند یک متغیر دیگر یا یک فانکشن و یا حتی یک آبجکت دیگر باشد. به همین دلیل (انعطاف پذیری و گستردگی بسیار بالا)، کارهایی که می توان با آبجکت ها و به طور کلی زبان های برنامه نویسی شیء گرا کرد، بی نهایت گسترده اند. در زبان برنامه نویسی جاوا اسکریپت راه های مختلفی برای ساخت آبجکت وجود دارد. برای نمونه، تکه کد زیر یک آبجکت ساده را به ساده ترین شکل ممکن با استفاده از علائم { } ایجاد می کند:

var myCar = { 
    name: "Camaro", 
    type: "Chevy",
    year: 2016,
    color: "White" 
};

توجه داشته باشیم که در ساخت آبجکت ها، خطوط جدید و اسپیس ها مهم نیستند؛ به عبارت دیگر، کد بالا با کد زیر هیچ تفاوتی در عمل ندارد:

var myCar = {name: "Camaro", type: "Chevy", year: 2016, color: "White"; };

همان طور که گفته شد، آبجکت ها از اعضایی به نام پِراپِرتی یا «مشخصه» تشکیل می شوند و این مشخصه ها، حتماً می بایست دارای یک جفت اطلاعات -name:value یا نام و مقدار- باشند. در این مثال، یک آبجکت داریم تحت عنوان myCar به معنی «ماشین من» که دارای چهار پِراپِرتی است. پِراپِرتی اول به نام name، مقدار استرینگ "Camaro" را دارد، پِراپِرتی دوم به نام type، مقدار استرینگ "Chevy"را در خود ذخیره کرد است، پِراپِرتی سوم year است که مقدار عددی 2016 را داشته و در نهایت به مقدار color می رسیم که مقدار استرینگی "White" را ذخیره ساخته است.

حال ممکن است این سوال پیش بیاید که به چه شکل می توان به بخش های مختلف این آبجکت دسترسی پیدا کرد. برای این منظور، دو روش پیش روی ما است. در روش اول، نام آبجکت را نوشته یک نقطه قرار می دهیم سپس نام پراپرتی مد نظر را می نویسیم:

myCar.name

در روش دوم، نام آبجکت را مد نظر را نوشته، مقابل آن علائم [ ] می گذاریم، سپس پراپرتی مد نظر خود را به عنوان پارامتر ورودی در نظر می گیریم:

myCar["name"]

هر دو روش فوق، مقدار مرتبط با پراپرتی name که برابر با استرینگ Camaro است را باز می گردانند.

پیش از این هم گفتیم که منظور از Method (متد)، کارهایی است که یک آبجکت می تواند انجام دهد. در مثال، فوق می توانیم یکسری متد فرضی برای خودروی کاماروی خود در نظر بگیریم:

myCar.start();
myCar.stop();
myCar.drive();
myCar.brake();

همان طور که در کد فوق ملاحظه می شود، آبجکت myCar ما یکسری کارهایی را هم می تواند انجام دهد -یکسری Method ها دارد- که از آن جمله می توان به متد ()start به معنی «روشن شدن»، متد ()stop به معنی «متوقف شدن»، متد ()drive به معنی «حرکت کردن» و متد ()brake به معنی «ترمز کردن» اشاره کرد.

به طور کلی، آبجکت ها همانند لیستی هستند که چندین آیتم مختلف و یا حتی لیست های دیگر در آن ها قرار می گیرند. آبجکت ها و کاربرد آن ها در فصل های آینده به طور کامل شرح داده خواهد شد.

لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان