در JavaScript، هر چیزی می تواند یک شیء باشد: یک رشته، یک عدد، یک آرایه، یک تابع و...

علاوه بر این، در JavaScript قابلیت تعریف اشیاد نیز وجود دارد.


اشیاء (Object) در JavaScript

Wiki

در JavaScript چندین شیء توکار (built-in) مانند: رشته، تاریخ، آرایه و... وجود دارد.

یک شیء، تنها یک نوع خاص داده است و می تواند شامل property و methodهایی باشد.


دسترسی به خصوصیاتِ (property) یک شیء

Wiki

اشیاء، به متغیرهای خاصی دسترسی دارند که به آنها property می گویند. (مقادیر وابسته به یک شیء)

 نحوه دسترسی به یک property:

objectName.propertyName

در مثال زیر، برای پیدا کردن طول رشته، از خصوصیت length استفاده شده است:

var message="Hello World!";
var x=message.length;

مقدار x، بعد از اجرای کد بالا:

12

دسترسی به متدهایِ (Method) یک شیء

Wiki

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

نحوه ی فراخوانی یک Method:

objectName.methodName()

در مثال زیر، با استفاده از متد ()toUpperCase حروف رشته "message"  حروف بزرگ تبدیل شده:

var message="Hello world!";
var x=message.toUpperCase();

مقدار x، بعد از اجرای کد بالا:

HELLO WORLD!

 ایجاد اشیاد در JavaScript

Wiki

در JavaScript، قابلیت تعریف اشیاد، وجود دارد.

برای ایجاد یک شیء دو روش مختلف وجود دارد:

  1. تعریف و ایجاد یک نمونه مستقیم از شیء
  2. تعریف شیء با استفاده از یک تابع به عنوان سازنده (Constractor) و سپس ایجاد یک نمونه جدید از شی

1- تعریف و ایجاد یک نمونه مستقیم از شیء

Wiki

در مثال زیر، یک نمونه مستقیم از یک شیء ایجاد شده و سپس چهار property به آن اضافه شده است:

مثال (اشیاء در JavaScript)

person=new Object();
person.firstname="John";
person.lastname="Doe";
person.age=50;
person.eyecolor="blue";
خودتان امتحان کنید »

کد بالا را می توان به صورت زیر نیز نوشت:

مثال (اشیاء در JavaScript)

person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};
خودتان امتحان کنید »

2- تعریف شیء با استفاده از یک تابع به عنوان سازنده (Constractor) و سپس ایجاد نمونه

Wiki

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

مثال (اشیاء در JavaScript)

function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
}
خودتان امتحان کنید »

کلمه کلیدی "this" در مثال بالا، به شیء ای که در دست است اشاره دارد.

ایجاد نمونه از یک شیء

Wiki

زمانی که سازنده ی شیء وجود داشته باشد، برای ایجاد نمونه، مانند زیر عمل نمایید:

var myFather=new person("John","Doe",50,"blue");
var myMother=new person("Sally","Rally",48,"green");

اضافه کردن Property به اشیاء

Wiki

این کار بسادگی دادن آن یک مقدار، به شی موجود است.

به فرض اینکه شیء person قبلاً وجود داشته باشد، می توانید propertyهای age ,lastname ,firstname و eyecolor را مانند زیر به آن اضافه کنید:

person.firstname="John";
person.lastname="Doe";
person.age=30;
person.eyecolor="blue";

x=person.firstname;

مقدار x، بعد از اجرای کد بالا:

John

اضافه کردن متدها (Method) به اشیاء

Wiki

متدها، توابعی هستند که به اشیاء ضمیمه شده اند.

تعریف متدهای یک شیء، داخل تابع سازنده (constructor) انجام می شود:

function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;

this.changeName=changeName;
function changeName(name)
{
this.lastname=name;
}
}

تابع ()changeName مقدار پارامتر ورودی name را به خصوصیت lastname اختصاص می دهد:

دسترسی به متد ()changeName

myMother=new person("Sally","Rally",48,"green");
myMother.changeName("Doe");
خودتان امتحان کنید »

JavaScript می داند که شیء personی که شما درباره آن صحبت می کنید کدام است، بنابراین در تابع سازنده، عبارت this با mymother جابه جا می شود.


کلاس ها در JavaScript

Wiki

JavaScript یک زبان شیء گرا (object oriented) است، اما از کلاس ها استفاده نمی کند.

در JavaScript کلاس تعریف نمی شود و همچنین از یک کلاس شیء ای ساخته نمی شود (مانند بیشتر زبان های شیء گرا).

JavaScript براساس یک نمونه اولیه است (prototype based) و از کلاس های استفاده نمی کند.


دستور for...in در JavaScript

Wiki

دستور for...in در JavaScript، داخل propertyهای یک شیء، حلقه می زند.

نحوه استفاده:

for (variable in object)
  {
  code to be executed
  }

توجه: کد داخل حلقه for...in، برای تک تک propertyهای شیء، اجرا خواهد شد.

مثال: حلقه زدن داخل propertyهای شی person:

مثال (اشیاء در JavaScript)

var person={fname:"John",lname:"Doe",age:25};

for (x in person)
  {
  txt=txt + person[x];
  }
خودتان امتحان کنید »
READ MORE