
در زبان برنامهنویسی جاوااسکریپت به هرطرف نگاه کنید یه شئ یا آبجکت میبینید، مثلا آرایه ها در جاوااسکریپت همواره آبجکت هستند، یا توابع یا مثلا تاریخ آبجکت هستند، یا مثلا اعداد و رشته ها هم میتونن آبجکت باشند ، پس برای اینه که میگن جاوااسکریپت مبتنی بر آبجکت هست. جاوااسکریپت از آن دسته از زبانهای برنامهنویسی است که همه چیز در آن به اشیاء یا همان objectها بستگی دارد، در واقع آبجکت در جاوااسکریپت حرف اول را میزند. اگر قصد برنامه نویسی با استفاده از جاوااسکریپت را دارید باید با شئ در جاوااسکریپت آشنا شوید. در این مطلب قصد داریم کمی بیشتر درباره آبجکت در جاوااسکریپت صحبت کنیم.
در جلسات قبلی ما یاد گرفتیم که چجوری میتونیم یک متغیر رو تعریف کنیم ، خب خیلی راحت با استفاده از یکی از کلمات کلیدی var let const میتونیم یک متغیر رو تعریف کنیم.
بفرض مثال میخوایم یک متغیر به نام test تعریف کنیم، پس میتونیم بصورت زیر عمل کنیم :
const test = "hi"
خب ما یه متغیر بنام test تعریف کردیم و مقدار hi بهش دادیم، تموم شد رفت.
حال میگه یک شئ هم در حقیقت همون متغیر هست و برای نگهداری داده ها استفاده میشه فقط با این تفاوت که این متغیر میتونه ویژگی ( خصوصیات یا property ) + مقدار داشته باشه.
چندین روش برای ایجاد و تعریف یک شئ Object در زبان جاوااسکریپت وجود داره که این روش ها به شرح زیر می باشند :
تو این روش ما هم خصوصیات هم مقادیر و هم خوده شئ رو در یک عبارت تعریف میکنیم. ( ساده ترین روش همین می باشد )
const person = { firstName: "Hossein", lastName: "Shahmohammadi", age: 22 };
const person = new Object(); person.firstName = "Hossein" person.lastName="Shahmohammadi" person.age=22;
تو این روش باید یه تابع ایجاد کنیم با پارامترهای مشخص ( مثلا برای دانشجو نام و فامیلی و سن و کد میخوایم ) بعدش با استفاده از کلمه کلیدی this مقدار هر یک از این پارامترهارو ( که میشه همون آرگومانها ) به خوده شئ اختصاص میدیم.
function person(Name, Family, Age) { this.name = Name; this.family = Family; this.age = Age; } const person = new person("Hossein", "Shahmohammadi", 22 );
خب ما شئ مون رو تعریف کردیم، حالا چجوری میتونیم به خصوصیات ( یا ویژگی یا Property ) های موجود در این شئ دسترسی داشته باشیم و آنها را فراخوانی و در نهایت در خروجی به نمایش درآوریم.
۲ روش برای فراخوانی یا نمایش خصوصیات اشیاء داریم :
مثال از روش اول :
const person = { firstName: "Hossein", lastName: "Shahmohammadi", age: 22 }; const name = person.firstName; const family = person.lastName; const age = person.age;
مثال از روش دوم :
const person = { firstName: "Hossein", lastName: "Shahmohammadi", age: 22 }; const name = person["firstName"]; const family = person["lastName"]; const age = person["age"];
خب دوستان در ادامه آموزش کار با اشیاء یا Objects در جاوااسکریپت میخوایم با نحوه استفاده از حلقه for در اشیاء رو یاد بگیریم.
در مثال های بالا همونطور که مشاهده کردید ما برای اینکه بتونیم آیتمهای یک شئ رو در خروجی به نمایش درآوریم، باید تکی تکی انتخاب و در خروجی نمایش دهیم.
ولی خب شاید ما بخوایم تمامی آیتمها ( یا منظور همون ویژگیها ) رو در خروجی به نمایش درآوریم، پس اینجاست که میتونیم با استفاده از دستور ( یا حلقه بهش میگن ) for .. in تمامی ویژگی ها + مقادیر یک شئ رو در خروجی به نمایش درآوریم.
const person= { Name: "Hossein", Family: "Shahmohammadi", Age: 22 }; let result = "" // یک متغیر دلخواه برای نگهداری مقادیر for (let x in person) { result = result + person[x] + " " } console.log(result);
ما میتونیم هر لحظه که بخوایم به دلخواه خودمون ویژگی + مقدار به شئ اضافه کنیم، فقط حواستون باشه که ویژگی جدید باید بعد از خوده شئ قرار بگیرد نه قبل آن.
const person = { firstName: "Hossein", lastName: "Shahmohammadi", age: 22 }; person.instagram = "@imhshahdi"// اضافه کردن ویژگی جدید console.log(person.instagram);
برای حذف یک ویژگی از یک شئ کافیه از کلمه کلیدی delete استفاده نماییم.
const person = { firstName: "Hossein", lastName: "Shahmohammadi", age: 22 }; delete person.firstName; // حذف کردن ویژگی نام delete person.age; // حذف کردن ویژگی سن
متدها در واقع عملیاتی هستند که بروی اشیاء ( شئ ) انجام میشه ، و بطور کلی تر بخوایم بگیم متدها یک تابع هستند که به عنوان یک خصوصیت از شئ ذخیره میشوند.
const person = { firstName: "Hossein", lastName: "Shahmohammadi", age: 22, fullName: function() { return this.firstName + " " + this.lastName;// نام و فامیلی رو برمیگردونه } };
const person = { firstName: "Hossein", lastName: "Shahmohammadi", age: 22 }; person.fullName = function() { return this.firstName+ " " + this.lastName; // نام و فامیلی رو برمیگردونه };
منبع : free-learn