۲۵ ژوئیه ۲۰۲۲

شیءها

همانطور که از فصل انواع داده می‌دانیم، 8 نوع داده در جاوااسکریپت وجود دارد. 7 مورد “اولیه یا اصلی” نامیده می‌شوند، به این دلیل که مقدارهای آنها فقط دارای یک چیز است (رشته یا عدد یا هر چیزی).

در مقابل، شیءها (objects) برای ذخیره‌سازی مجموعه‌ای از داده‌های گوناگون و چیزهای پیچیده‌تر استفاده می‌شوند. در جاوااسکریپت، شیءها تقریبا به تمام جنبه‌های زبان نفوذ کرده‌اند. پس ما باید قبل از اینکه عمیقا به موضوع دیگری وارد شویم شیءها را بشناسیم.

یک شیء می‌تواند با آکولادها {...} و همراه یک لیست اختیاری از ویژگی‌ها(property) ساخته شود. یک ویژگی یعنی یک جفت از “key: value”، که در آن key یک رشته است (به آن “اسم ویژگی” هم می‌گویند) و value هر چیزی می‌تواند باشد.

می‌توانیم یک شیء را به عنوان یک قفسه‌ی دارای پرونده‌های علامت‌دار فرض کنیم. هر داده در پرونده‌ی خودش توسط کلید (key) ذخیره شده است. پیدا کردن یا حذف/اضافه کردن یک پرونده با اسم آن راحت می‌شود.

یک شیء خالی (“قفسه خالی”) می‌تواند با استفاده از دو سینتکس ساخته شود:

let user = new Object(); // "object constructor" سینتکس
let user = {};  // "object literal" سینتکس

معمولا، سینتکس آکولاد استفاده می‌شود. یک شیء که به این صورت تعریف شده باشد را شیء لیتِرال می‌نامند.

لیترال‌ها و ویژگی‌ها

ما می‌توانیم بلافاصله ویژگی‌هایی را به صورت جفت‌هایی از “کلید: مقدار” (key: value) داخل {...} قرار دهیم:

let user = {     // یک شیء
  name: "John",  // را ذخیره کنید "John" مقدار "name" توسط
  age: 30        // مقدار 30 را ذخیره کنید "age" توسط
};

یک ویژگی، قبل از ":" دارای یک کلید (همچنین به عنوان “اسم” یا “شناسه” هم شناخته می‌شود) و یک مقدار در سمت راست دو نقطه است.

در شیء user، دو ویژگی وجود دارد:

  1. اولین ویژگی، اسم "name" و مقدار "John" را دارد.
  2. دومین ویژگی، اسم "age" و مقدار 30 را دارد.

شیء user بدست آمده می‌تواند به عنوان یک قفسه با دو پرونده‌ی علامت دار با برچسب‌های “name” و “age” فرض شود.

ما می‌توانیم در هر زمانی پرونده‌ها را اضافه یا کم کنیم یا آنها را بخوانیم.

مقدارهای ویژگی‌ها با استفاده از نقطه قابل دسترسی هستند:

// مقدارهای ویژگی‌های شیء را دریافت کنید:
alert( user.name ); // John
alert( user.age ); // 30