اشیا (Objects) در JS

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

هر شیء دارای ویژگی ها (properties) و متد‌هایی (methods) است. ویژگی ها  شیء، داده‌های مربوط به آن شیء را نگهداری می‌کنند، در حالی که متدها عملیات‌هایی را که می‌توانند روی داده‌ها انجام دهند، تعریف می‌کنند.

const car= {type:"Fiat", model:"500", color:"white"};

نکته: از کلمه کلیدی const برای فراخوانی اشیاء استفاده می شود.

 

تعریف شی در JS

با سه روش میتوان اشیا را تعریف کرد.

  • استفاده از مقدار ثابت
  • استفاده از کلمه کلیدی new
  • استفاده از یک سازنده اشیاء

1- مقدار ثابت 

یک مقدار ثابتی است که از یک لیست از جفت‌های نام:مقدارکه  داخل براکت مجعت {} است.

{firstName:"ali", lastName:"farhadi", age:30,"}

نکته:  جفت‌های نام : مقدار (name:value) همچنین کلید : مقدار نامیده می‌شوند. مقدار ثابتی همچنین مقادیر اولیه شی هستند.

1-استفاده از کلمه کلیدی new

با استفاده از کلمه کلیدی new می توان یک اشیا جدید ایجاد کرده و مقادیر مورد نظر را در آن نوشت.

//ایجاد یک شی
const person = new Object();

// اضافه کردن ویژگی ها
person.firstName = "ehsan";
person.lastName = "eslami";
person.age = 30;
person.eyeColor = "green";

نکته: مثال‌های بالا دقیقا همان کار را انجام می‌دهند. اما نیازی به استفاده از ()new Object اشیا جدید نیست. برای خوانایی، سادگی و سرعت اجرا ، از روش مقدار ثابتی اشیاء استفاده کنید.

ایجاد یک شیء در JS

 در مثال های زیر یک شیء جاوااسکریپت با 4 خصوصیت ایجاد می‌کنند.

const person = {firstName:"ehsan", lastName:"eslami", age:30,};
// ایجاد یک شیء
const person = {
  firstName: "ehsan",
  lastName: "eslami",
  age: 30,
  eyeColor: "black"
};
//ایجاد یک شی
const person = {};

// اضافه کردن ویژگی ها
person.firstName = "ehsan";
person.lastName = "eslami";
person.age = 30;
person.eyeColor = "black";

ویژگی‌های شیء در JS

مقادیر نامگذاری شده در اشیای جاوا اسکریپت، ویژگی ها  نامیده می شوند.

ارزش ویژگی
ehsan firstName
eslami lastName
30 age
black eyeColor

اشیاء به عنوان جفت‌های نام-مقدار نوشته می شوند مانند زیر است : 

  • آرایه‌های انجمنی در PHP
  • فهرست‌ها در Python
  • جدول‌های هش در C
  • نقشه‌های هش در جاوا
  • هش‌ها در Ruby و Perl

دسترسی به ویژگی های شی در JS

 دسترسی به ویژگی های شی در جاوا اسکریپت می‌توان از دو روش برای دسترسی به ویژگی های یک شی استفاده کرد:

  •  از طریق نام ویژگی به عنوان خصوصیت 
person.lastName;
  • استفاده از براکت مجعت و اسم خصوصیت.
person["lastName"];

متدهای شیء‌ها در JS

در جاوا اسکریپت، متدها توابعی هستند که با اشیاء مرتبط هستند. آنها به عنوان ویژگی های یک شی تعریف می شوند و می توانند داده های شی را دستکاری یا اقدامات مربوط به آن شی را انجام دهند.

ارزش ویژگی 
ehsan firstName
eslami lastName
30 age
black eyeColor
function() {return this.firstName + " " + this.lastName;} fullName
const person = {
  firstName: "ehsan",
  lastName : "eslami",
  id       : 5566,
  fullName : function() {
    return this.firstName + " " + this.lastName;
  }
};

نکته: this یعنی این و در اینجا به خود تابع اشاره میکند  یعتی person می شود.

 

در جاوا اسکریپت، اشیا پادشاه هستند.

اشیا، ظرف‌هایی برای ویژگی‌ها و متدها هستند.

ویژگی‌ها به عنوان مقادیر نامگذاری می‌شوند.

متدها توابعی هستند که به عنوان  ویژگی‌ها ذخیره می شوند.

ویژگی‌ها می‌توانند مقادیر ابتدایی، توابع و حتی اشیاء دیگر باشند.

تقریبا همه چیز در جاوا اسکریپت شی است.

اشیا اشیا است
ریاضی اشیا است
تابع ها اشیا است
تاریخ ها اشیا است
آرایه ها اشیا است
نقشه ها اشیا است
مجموعه ها اشیا است

تمام مقادیر جاوا اسکریپت، به جز مقادیر اولیه، اشیا هستند.

مقدار اولیه (Primitives) در JS

مقدار اولیه مقداری است که هیچ ویژگی یا روشی ندارد، 3.14 یک مقدار اولیه است

نوع داده اولیه، داده‌ای است که دارای مقدار اولیه است.

جاوا اسکریپت 7 نوع نوع داده اولیه را تعریف می کند:

  • رشته (string)
  • عدد (number)
  • بولین (boolean)
  • خالی (null)
  • پوچ (undefined)
  • سمبل (symbol)
  • bigint

تغییرناپذیر

مقادیر اولیه تغییرناپذیر هستند (آنها کد گذاری شده اند و قابل تغییر نیستند)

اگر x = 3.14 باشد، می توانید مقدار x را تغییر دهید، اما نمی توانید مقدار 3.14 را تغییر دهید.

مثال; نوع داده مقدار
"Hello" همیشه است "Hello" string "Hello"
3.14 همیشه 3.14 است  number 3.14
 true همیشه true است boolean true
false همیشه false است boolean false
null همیشه null است null (object) null
undefined همیشه  undefined است undefined undefined

اشیاء جاوا اسکریپت قابل تغییر هستند

اشیا قابل تعییر هستند این امر به مرجع اشاره می کند نه به مقدار.

اگر person یک شی باشد، عبارت زیر یک کپی از person ایجاد نمی کند:

const x = person;

 x کپی person نیست. بلکه person ، x است.

x با person یک آدرس مشترک دارند.

هر تغییری در x در person  نیز می شود:

//تعریف یک شی با ویژگی های آن
const student = {
  firstName: "amir",
  lastName: "kazemi",
  age:22,
  eyeColor: "brown"
};

// مقدار متغیر را برابر با مقدار شی قرار دادیم
const x = student ;

// یکی از ویژگی های متغیر جدید را تغییر دادیم
x.age = 10;

خلاصه درس

در این فصل با اشیاء و نحوه ی استفاده و ایجاد آن در Js آشنا شدیم.

تمرین


مشاهده پاسخ
توسعه دهندگان
احسان اسلامی