بررسی اشیاء یا آبجکت (objects) در جاوااسکریپت

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

یک شئ یا Object در واقع یک متغیر هست

در جلسات قبلی ما یاد گرفتیم که چجوری می‌تونیم یک متغیر رو تعریف کنیم ، خب خیلی راحت با استفاده از یکی از کلمات کلیدی var let const میتونیم یک متغیر رو تعریف کنیم.

بفرض مثال می‌خوایم یک متغیر به نام test تعریف کنیم، پس می‌تونیم بصورت زیر عمل کنیم :

const test = &quothi&quot

خب ما یه متغیر بنام test تعریف کردیم و مقدار hi بهش دادیم، تموم شد رفت.

حال میگه یک شئ هم در حقیقت همون متغیر هست و برای نگهداری داده ها استفاده میشه فقط با این تفاوت که این متغیر میتونه ویژگی ( خصوصیات یا property ) + مقدار داشته باشه.



نحوه تعریف شئ در جاوااسکریپت

چندین روش برای ایجاد و تعریف یک شئ Object در زبان جاوااسکریپت وجود داره که این روش ها به شرح زیر می باشند :

  • تعریف شئ و خصوصیات در یک عبارت ( ساده ترین روش )
  • تعریف شئ و خصوصیات با استفاده از کلمه کلیدی new
  • تعریف شئ و خصوصیات با استفاده از سازنده ( یا Constructor ) شئ

تعریف شئ و خصوصیات در یک عبارت ( ساده ترین روش )

تو این روش ما هم خصوصیات هم مقادیر و هم خوده شئ رو در یک عبارت تعریف می‌کنیم. ( ساده ترین روش همین می باشد )

const person = { firstName: &quotHossein&quot, lastName: &quotShahmohammadi&quot, age: 22 };

تعریف شئ و خصوصیات با استفاده از کلمه کلیدی new

const person = new Object();
person.firstName = &quotHossein&quot
person.lastName=&quotShahmohammadi&quot
person.age=22;



تعریف شئ و خصوصیات با استفاده از سازنده ( یا Constructor ) شئ

تو این روش باید یه تابع ایجاد کنیم با پارامترهای مشخص ( مثلا برای دانشجو نام و فامیلی و سن و کد میخوایم ) بعدش با استفاده از کلمه کلیدی this مقدار هر یک از این پارامترهارو ( که میشه همون آرگومان‌ها ) به خوده شئ اختصاص میدیم.

function person(Name, Family, Age) {
this.name = Name;
this.family = Family;
this.age = Age;
}

const person = new person(&quotHossein&quot, &quotShahmohammadi&quot, 22 );




نحوه نمایش یا فراخوانی خصوصیت (Property) یک شئ

خب ما شئ مون رو تعریف کردیم، حالا چجوری می‌تونیم به خصوصیات ( یا ویژگی یا Property ) های موجود در این شئ دسترسی داشته باشیم و آنها را فراخوانی و در نهایت در خروجی به نمایش درآوریم.

۲ روش برای فراخوانی یا نمایش خصوصیات اشیاء داریم :

  • objectName.property
  • objectName[“property”]


مثال از روش اول :

const person = { firstName: &quotHossein&quot, lastName: &quotShahmohammadi&quot, age: 22 };

const name = person.firstName;
const family = person.lastName;
const age = person.age;

مثال از روش دوم :

const person = { firstName: &quotHossein&quot, lastName: &quotShahmohammadi&quot, age: 22 };  

const name = person[&quotfirstName&quot]; 
const family = person[&quotlastName&quot]; 
const age = person[&quotage&quot];




حلقه for در اشیاء

خب دوستان در ادامه آموزش کار با اشیاء یا Objects در جاوااسکریپت می‌خوایم با نحوه استفاده از حلقه for در اشیاء رو یاد بگیریم.

در مثال های بالا همونطور که مشاهده کردید ما برای اینکه بتونیم آیتم‌های یک شئ رو در خروجی به نمایش درآوریم، باید تکی تکی انتخاب و در خروجی نمایش دهیم.

ولی خب شاید ما بخوایم تمامی آیتم‌ها ( یا منظور همون ویژگی‌ها ) رو در خروجی به نمایش درآوریم، پس اینجاست که می‌تونیم با استفاده از دستور ( یا حلقه بهش میگن ) for .. in تمامی ویژگی ها + مقادیر یک شئ رو در خروجی به نمایش درآوریم.

const person= {
Name: &quotHossein&quot,
Family: &quotShahmohammadi&quot,
Age: 22 
};

let result = &quot&quot // یک متغیر دلخواه برای نگهداری مقادیر

for (let x in person) {
result = result + person[x] + &quot &quot
}

console.log(result);




نحوه اضافه کردن ویژگی جدید به شئ

ما می‌تونیم هر لحظه که بخوایم به دلخواه خودمون ویژگی + مقدار به شئ اضافه کنیم، فقط حواستون باشه که ویژگی جدید باید بعد از خوده شئ قرار بگیرد نه قبل آن.

const person = { firstName: &quotHossein&quot, lastName: &quotShahmohammadi&quot, age: 22 };

person.instagram = &quot@imhshahdi&quot// اضافه کردن ویژگی جدید
console.log(person.instagram);


نحوه حذف کردن یک ویژگی از شئ

برای حذف یک ویژگی از یک شئ کافیه از کلمه کلیدی delete استفاده نماییم.

const person = { firstName: &quotHossein&quot, lastName: &quotShahmohammadi&quot, age: 22 };

delete person.firstName; // حذف کردن ویژگی نام
delete person.age; // حذف کردن ویژگی سن



متد یا Method در شئ

متدها در واقع عملیاتی هستند که بروی اشیاء ( شئ ) انجام میشه ، و بطور کلی تر بخوایم بگیم متدها یک تابع هستند که به عنوان یک خصوصیت از شئ ذخیره می‌شوند.

نحوه ایجاد متد در یک شئ – روش اول – داخل شئ

const person = {
   firstName: &quotHossein&quot,
   lastName: &quotShahmohammadi&quot,
   age: 22,
   fullName: function() {
      return this.firstName + &quot &quot + this.lastName;// نام و فامیلی رو برمیگردونه
   }
};


نحوه ایجاد متد در یک شئ – روش دوم – خارج از شئ

const person = {
    firstName: &quotHossein&quot,
    lastName: &quotShahmohammadi&quot,
    age: 22
 };

person.fullName = function() {
   return this.firstName+ &quot &quot + this.lastName; // نام و فامیلی رو برمیگردونه
};

منبع : free-learn