در JavaScript، هر چیزی می تواند یک شیء باشد: یک رشته، یک عدد، یک آرایه، یک تابع و...
علاوه بر این، در JavaScript قابلیت تعریف اشیاد نیز وجود دارد.
اشیاء (Object) در JavaScript
Wiki
در JavaScript چندین شیء توکار (built-in) مانند: رشته، تاریخ، آرایه و... وجود دارد.
یک شیء، تنها یک نوع خاص داده است و می تواند شامل property و methodهایی باشد.
دسترسی به خصوصیاتِ (property) یک شیء
Wiki
اشیاء، به متغیرهای خاصی دسترسی دارند که به آنها property می گویند. (مقادیر وابسته به یک شیء)
نحوه دسترسی به یک property:
در مثال زیر، برای پیدا کردن طول رشته، از خصوصیت length استفاده شده است:
var message="Hello World!";
var x=message.length;
مقدار x، بعد از اجرای کد بالا:
دسترسی به متدهایِ (Method) یک شیء
Wiki
Method در واقع عملیاتی است که روی یک شیء اجرا می شود.
نحوه ی فراخوانی یک Method:
در مثال زیر، با استفاده از متد ()toUpperCase حروف رشته "message" حروف بزرگ تبدیل شده:
var message="Hello world!";
var x=message.toUpperCase();
مقدار x، بعد از اجرای کد بالا:
ایجاد اشیاد در JavaScript
Wiki
در JavaScript، قابلیت تعریف اشیاد، وجود دارد.
برای ایجاد یک شیء دو روش مختلف وجود دارد:
- تعریف و ایجاد یک نمونه مستقیم از شیء
- تعریف شیء با استفاده از یک تابع به عنوان سازنده (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، بعد از اجرای کد بالا:
اضافه کردن متدها (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