در این درس از آموزش جاوا اسکریپت، به معرفی اشیا و شی گرایی در جاوا اسکریپت می پردازیم.
در جاوا اسکریپت ، اشیا پادشاه هستند. اگر اشیا را می فهمید ، پس جاوا اسکریپت را هم می فهمید.
در جاوا اسکریپت، تقریباً “همه چیز” یک شی است.
- بولین ها می تواند اشیا باشد (در صورت تعریف با کلمه کلیدی
new
) - اعداد می توانند اشیا باشند (در صورت تعریف با کلمه کلیدی
new
) - رشته ها می توانند اشیا باشند (در صورت تعریف با کلمه کلیدی
new
) - تاریخ ها همیشه اشیاء هستند
- ریاضیات همیشه اشیا هستند
- عبارات منظم همیشه اشیا هستند
- آرایه ها همیشه اشیا هستند
- توابع همیشه اشیا هستند
- اشیا همیشه اشیا هستند
همه مقادیر جاوا اسکریپت ، به استثنای مقادیر ابتدایی ، اشیا هستند.
مقادیر ابتدایی جاوا اسکریپت
مقدار اولیه یک ارزش است که هیچ خصوصیت یا متدی ندارد.
نوع داده اولیه داده ای است که دارای مقدار ابتدایی است.
جاوا اسکریپت 5 نوع از انواع داده های ابتدایی را تعریف می کند:
string
number
boolean
null
undefined
مقادیر ابتدایی تغییرناپذیر هستند.
اگر x = 3.14 ، می توانید مقدار x را تغییر دهید. اما نمی توانید مقدار 3.14 را تغییر دهید.
ارزش | تایپ کنید | اظهار نظر |
---|---|---|
“سلام” | رشته | “سلام” همیشه “سلام” است |
3.14 | عدد | 3.14 همیشه 3.14 است |
true | بولی | true همیشه درست است |
false | بولی | false همیشه نادرست است |
null | پوچ (شی) | null همیشه پوچ است |
undefined | تعریف نشده | undefined همیشه تعریف نشده است |
اشیا متغیر هستند
متغیرهای جاوا اسکریپت می توانند یک مقدار داشته باشند:
اشیا نیز متغیر هستند. اما اشیا می توانند مقادیر زیادی داشته باشند.
مقادیر به صورت جفت نام : مقدار نوشته می شوند (نام و مقداری که با دو نقطه از هم جدا می شوند).
مثالها
1 | var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}; |
یک شی جاوا اسکریپت مجموعه ای از مقادیر نامگذاری شده است
خصوصیات شیء
مقادیر نامگذاری شده ، در اشیا جاوا اسکریپت ، ویژگی نامیده می شوند .
ویژگی | مقدار |
---|---|
نام کوچک | علی |
نام خانوادگی | رستمی |
سن | 50 |
رنگ چشم | قهوه ای |
اشیایی که به عنوان جفت نام-مقدار نوشته می شوند مشابه موارد زیر هستند:
- آرایه های انجمنی در PHP
- واژه نامه ها در پایتون
- جداول هَش در C
- نقشه های هَش در جاوا
- هَش ها در روبی و پرل
متد های شی
متد ها اعمالی هستند که می توانند روی اشیا انجام شوند.
خصوصیات شی می تواند هم مقادیر ابتدایی باشد ، هم سایر اشیا، و هم توابع.
یک متد شیء در واقع یک خاصیت از شیء است که حاوی تعریف تابع است.
ویژگی | مقدار |
---|---|
نام کوچک | علی |
نام خانوادگی | ابراهیمی |
سن | 50 |
رنگ چشم | قهوه ای |
نام و نام خانوادگی | function(){return this.firstName +""+this.lastName;} |
اشیا جاوا اسکریپت ظرف هایی برای مقادیر نامگذاری شده هستند که به آنها ویژگی و متد گفته می شود.
در درس های بعدی درباره متد ها بیشتر خواهید آموخت.
ایجاد یک شی جاوا اسکریپت
با جاوا اسکریپت می توانید اشیا خود را تعریف و ایجاد کنید.
روش های مختلفی برای ایجاد اشیا جدید وجود دارد:
- با استفاده از یک شی واقعی ، یک شی را تعریف و ایجاد کنید.
- تعریف و ایجاد یک شی ، با کلمه کلیدی
new
. - سازنده اشیا را تعریف کنید و سپس اشیایی را از نوع ساخته شده ایجاد کنید.
در ECMAScript 5 ، یک شی همچنین می تواند با تابع Object.create()
ایجاد شود .
استفاده از یک شیء واقعی
این ساده ترین راه برای ایجاد یک شی جاوا اسکریپت است.
با استفاده از یک آبجکت واقعی ، هم یک شی را در یک عبارت تعریف می کنید و هم ایجاد می کنید.
یک شیء واقعی لیستی از جفت های نام : مقدار است، (مانند سن: 50) در داخل آکولاد {}
.
مثال زیر یک شی جاوا اسکریپت جدید با چهار ویژگی ایجاد می کند:
مثالها
1 2 | var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}; |
فاصله و خط های خالی مهم نیست. یک تعریف شی می تواند چندین خط را در بر بگیرد:
مثالها
1 2 3 4 5 6 | var person = { firstName: "John", lastName: "Doe", age: 50, eyeColor: "blue" }; |
با استفاده از کلید واژه new جاوا اسکریپت
مثال زیر همچنین یک شی جاوا اسکریپت جدید با چهار ویژگی ایجاد می کند:
1 2 3 4 5 6 7 8 9 | var person = new Object(); person.firstName = "John"; person.lastName = "Doe"; person.age = 50; person.eyeColor = "blue"; |
دو مثال فوق دقیقاً همان کار را انجام می دهند. نیازی به استفاده از new Object()
نیست .
برای سادگی ، خوانایی و سرعت اجرا ، از روش اول استفاده کنید (روش واقعی شی).
اشیا جاوا اسکریپت قابل تغییر هستند
اشیا قابل تغییر هستند: برای دسترسی به اشیا از مرجع استفاده می شود نه مقدار.
اگر person یک شی باشد ، عبارت زیر نسخه ای از person ایجاد نمی کند. بلکه آدرس person در x ذخیره می شود و x به شی person اشاره دارد:
1 | var x = person; // This will not create a copy of person. |
بعبارتی دیگر شی x یک کپی از person نیست. بلکه هردو شی x و person یکی هستند.
هر تغییری در x در person نیز انجام خواهد شد، زیرا x و person یک شی هستند.
مثالها
1 2 3 4 5 | var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"} var x = person; x.age = 10; // This will change both x.age and person.age |
منبع : W3Schools.com
درس بعدی : خصوصیات اشیا در جاوا اسکریپتدرس قبلی : اعتبارسنجی فرم ها با جاوا اسکریپت