اشیاء

از ویکی‌کد
پرش به ناوبری پرش به جستجو
Main Page Tutorial
JavaScript-menu.png
موارد آموزشی
فرم‌ها در جاوا اسکریپت
اشیاء در جاوا اسکریپت
۱تعریف شیء
۲ویژگی‌های اشیاء
۳متدهای اشیاء
۴نمایش اشیاء
۵روش‌های دسترسی به شیء
۶سازنده‌های شیء
۷شکل اصلی شیء
۸متدهای شیء در نسخهٔ ES5
تابع در جاوا اسکریپت
HTML DOM در جاوا اسکریپت
Browser BOM در جاوا اسکریپت
AJAX در جاوا اسکریپت
JSON در جاوا اسکریپت
جی‌کوئری در برابر جاوا اسکریپت
مثال‌های جاوا اسکریپت
مرجع جاوا اسکریپت
در جاوا اسکریپت، اشیاء مفهوم اصلی است. اگر شما مفهوم اشیاء را درک کردید، شما جاوا اسکریپت را درک کرده‌اید.

در جاوا اسکریپت، تقریباً «همه چیز» یک شیء است.[۱]

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

تمامی مقادیر در جاوا اسکریپت، به جز مقادیر اصلی (به انگلیسی: primitive)، شیء هستند.

مقادیر اصلی (به انگلیسی: Primitives) در جاوا اسکریپت

یک مقدار اصلی مقداری است که هیچ ویژگی یا متدی ندارد.

نوع داده اصلی نوع داده‌ای است که مقدار اصلی (به انگلیسی: Primitives) دارد.

جاوا اسکریپت ۵ نوع از نوع داده‌های اصلی را تعریف می‌کند:

  • string
  • number
  • boolean
  • null
  • undefined

مقادیر اصلی (به انگلیسی: primitive) تغییرناپذیر هستند. (آنها اصطلاحاً hardcode می‌شوند و بنابراین غیرقابل تغییر هستند).

اگر متغیر x برابر با مقدار ۳٫۱۴ باشد، شما می‌توانید مقدار متغیر x را تغییر دهید. اما شما نمی‌توانید مقدار ۳٫۱۴ را تغییر دهید.
مقدار نوع نظر
"Hello" string یا رشته‌ای "Hello" همیشه “Hello” است
۳٫۱۴ number یا عددی ۳٫۱۴ همیشه ۳٫۱۴ است
true boolean یا مقدار منطقی true همیشه true است
false boolean یا مقدار منطقی false همیشه false است
null null (شیء) Null همیشه null است
undefined undefined Undefined همیشه undefined است

اشیاء متغیر هستند

متغیرهای جاوا اسکریپت می‌توانند تک مقداری باشند:

مثال

var person = "John Doe";


مشاهدهٔ نتیجه


اشیاء نیز متغیر هستند. اما اشیاء می‌توانند چندین نوع مقدار داشته باشند.

مقادیر به صورت جفت‌هایی از نام:مقدار نوشته می‌شوند (نام و مقدار با یک: از یک دیگر جدا می‌شوند).

مثال

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};


مشاهدهٔ نتیجه

یک شیء جاوا اسکریپت، مجموعه‌ای از مقادیر نامگذاری شده‌است.

ویژگی های شیء

مقادیر نامگذاری شده در اشیاء جاوا اسکریپت، ویژگی یا (به انگلیسی: Propertie) نامیده می‌شوند.

ویژگی مقدار
firstName John
lastName Doe
age ۵۰
eyeColor blue

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

متدهای شیء

متدها اعمالی هستند که می‌توان روی اشیاء انجام داد.

ویژگی‌های اشیاء می‌توانند هم از نوع مقادیر اصلی (به انگلیسی: Primitives) یا هم اشیاء دیگر و تابع‌ها باشند.

یک متد شیء، یک ویژگی شیء است که شامل یک تابع است.

ویژگی مقدار
firstName John
lastName Doe
age ۵۰
eyeColor blue
fullName function() {return this.firstName + " " + this.lastName;}
اشیاء جاوا اسکریپت نگه دارنده‌هایی برای مقادیر نامگذاری شده‌ای هستند که ویژگی (به انگلیسی: Properties) و متدها نامیده می‌شوند.

ساخت یک شیء در جاوا اسکریپت

با جاوا اسکریپت، شما می‌توانید شیء خود را تعریف و بسازید.

راه‌های متفاوتی برای ساخت اشیاء جدید وجود دارد:

  • تعریف و ساخت یک تک شیء با استفاده از تعریف عادی شیء.
  • ساخت و تعریف یک تک شیء، با استفاده از کلمه کلیدیnew.
  • تعریف یک سازنده شیء و سپس ساخت شیء از نوع ساخته شده.
در نسخه ECMAScript 5، یک شیء می‌تواند با فراخوانی متد Object.create نیز ساخته شود.

استفاده از تعریف عادی شیء

این ساده‌ترین روش برای ساخت یک شیء در جاوا اسکریپت است.

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

یک شیء عادی، لیستی از جفت‌های نام: مقدار (همانند سن: ۵۰) است که درون آکولادهای باز و بسته { } قرار گرفته‌اند.

مثال زیر، یک شیء جدید جاوا اسکریپت با چهار ویژگی (به انگلیسی: properties) ایجاد می‌کند:

مثال

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};


مشاهدهٔ نتیجه


فاصله‌های خالی و فاصله بین خطوط مهم نیستند. تعریف یک شیء می‌تواند در چندین خط صورت گیرد:

مثال

1 var person = {
2   firstName: "John",
3   lastName: "Doe",
4   age: 50,
5   eyeColor: "blue"
6 };


مشاهدهٔ نتیجه


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

مثال زیر نیز یک شیء جدید در جاوا اسکریپت با چهار ویژگی (به انگلیسی: properties) ایجاد می‌کند:

مثال

1 var person = new Object();
2 person.firstName = "John";
3 person.lastName = "Doe";
4 person.age = 50;
5 person.eyeColor = "blue";


مشاهدهٔ نتیجه


دو مثال فوق دقیقاً یک کار را انجام می‌دهند. نیازی برای استفاده از دستور new Object() نیست.

برای ساده‌تر بودن و خوانایی بیشتر و سرعت اجرای کد از روش اول (روش تعریف عادی شیء) استفاده کنید.

اشیاء در جاوا اسکریپت تغییرپذیر هستند

اشیاء تغییرپذیر هستند: آنها با رفرنس آدرس دهی می‌شوند نه با مقدار.

اگر person یک شیء باشد، عبارت زیر یک کپی از person ایجاد نخواهد کرد:

var x = person;  // This will not create a copy of person.

شیء x کپی شده‌ای از شیء person نیست. خود شیء person است. هر دوی x و person اشیاء یکسانی هستند.

هرگونه تغییری در متغیر x در شیء person نیز اعمال می‌شود، زیرا x و person اشیاء یکسانی هستند.

مثال

1 var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}
2 
3 var x = person;
4 x.age = 10;           // This will change both x.age and person.age


مشاهدهٔ نتیجه


منابع آموزشی