مقدمه ای بر مبحث شی گرایی :
جاوا اسکریپت ، یک زبان برنامه
نویسی شی گرا یا ( Object Oriented Programming ) است . این زبان به برنامه نویس ، قابلیت
استفاده از اشیای پیش ساخته و یا تعریف و ایجاد اشیای جدید مورد نیاز خود را می
دهد .
توجه : در این
قسمت ، مروری کوتاه بر مفهوم برنامه نویسی شی گرا در جاوا اسکریپت و نحوه استفاده
از آن خواهیم داشت . در قسمت های بعدی به معرفی انواع اشیا پیش ساخته در Java Script می
پردازیم .
مفهوم کلاس :
کلاس ( class ) ، اساسی ترین مفهوم شی گرایی است . یک کلاس یک الگو یا چهارچوب از
پیش تعریف شده است که اشیا ( objects ) از روی آن ساخته می شوند . هر کلاس
مجموعه ای از خواص ( Properties ) و متدها ( Methods ) است ، که کلاس آنها را به اشیایی که
از رویش ساخته می شوند ، به ارث می دهد .
یک کلاس همانند
یک دستورالعمل یا نقشه برای ایجاد اشیای جدید مشتق شده از آن است . برای
مثال موجودیت دانشجو در مجموعه دانشگاه یک کلاس است ، که هر دانشجو یک شی ساخته
شده از روی آن است .
مثال 2 : متغیرهای
متنی یا string ، یکی از کلاس
های پیش ساخته در جاوااسکریپت است . در قسمت بعد با تمام خواص و متدهای آن آشنا
خواهید شد .
مفهوم شی :
هر شی ، یک نمونه ساخته شده از روی
کلاس مادر است . شی خصوصیات و متدهای خود را از کلاس مادر به ارث می برد .
هر یک از
خصوصیات یک شی ، در برگیرنده مقدار مختص به آن خاصیت برای آن شی است . به عبارت
دیگر ، از هر یک از خواص یک کلاس ، یک نسخه یا کپی منحصر به فرد به هر شی اختصاص
می یابد ، که مقدار آن با مقدارش برای سایر اشیای آن کلاس ، متمایز و منحصر به فرد
است .
مثال : برای
مثال ، هر دانشجو که از روی کلاس دانشجو ایجاد می شود ، دارای خاصیت های نام ، نام
خواندگی ، شماره دانشجویی و ... غیره مخصوص به خود است . گرچه مقدار این خواص در نمونه های
مختلف دانشجوها ممکن است در برخی از آنها مثل نام یکسان و در برخی مثل شماره
دانشجویی یکتا باشد ، ولی مقدار آن برای هر دانشجو جدا و متمایز است .
مفهوم متد :
متدها ، عملیات یا رفتارهایی است که
اشیا یک کلاس می توانند انجام دهند .
مثال : برای
مثال هر دانشجو که از روی کلاس دانشجو ساخته می شود ، دارای عملیات های یکسانی مثل
ثبت نام ، انتخاب واحد و ... است .
نحوه تعریف یک کلاس و ایجاد یک شی جدید در جاوا اسکریپت :
در اینجا ، به معرفی یکی از روش های
تعریف یک کلاس و ایجاد شی جدید از روی آن می پردازیم . سپس با نحوه دسترسی به خواص .
متدهای اشیا ، آشنا خواهیم شد .
برای ایجاد یک
کلاس ، از واژه کلیدی function
به شکل کلی زیر
استفاده می شود :
function
نام کلاس
( Parameter1 , Parameter2 , ... )
{
this.نام خاصیت 1 = Parameter1 ;
this.نام خاصیت 2 = Parameter2 ;
.
.
.
}
توضیح : ابتدا واژه کلیدی function را نوشته
، پس از آن نام کلاس ، که در سطح برنامه برای شناسایی و دسترسی به کلاس مورد نظر
از آن استفاده می شود را تعیین می کنیم . به تعداد خواص مورد نظر برای اشیای کلاس
، در پرانتز جلوی نام کلاس ، پارامتر تعریف کرده ، تا در هنگام فراخوانی کلاس برای
ایجاد شی جدید در برگیرنده مقادیر لازم برای خواص شی باشند .
سپس در بدنه
دستورات کلاس برای تعریف و مقدار دهی هر یک از خواص اشیای کلاس ، از وایه کلیدی this به شکل
کلی زیر استفاده می شود :
this.نام پارامتر = نام خاصیت
واژه کلیدی this ، در هر لحظه به شی جاری از کلاس که در آن لحظه در حال ساخت یا
ویرایش است ، اشاره می کند .
پس از تعریف
ساختار کلاس ، برای ایجاد یک شی جدید از حالت کلی زیر استفاده می شود :
var نام شی جدید = function نام کلاس ( Parameter1 Value , Parameter2 Value , ... ) ;
برای دسترسی و مقدار دهی هر یک از خواص یک شی از روش کلی زیر استفاده می شود :
نام خاصیت . نام شی
مثال : در مثال زیر یک کلاس به نام student ایجاد
کرده ایم . هر شی این کلاس 3 خاصیت نام ( Name ) ، نام خواندگی ( Family ) و شماره دانشجویی ( ID ) را خواهد
داشت . در هنگام فراخوانی کلاس برای ایجاد یک شی جدید ، مقادیر این 3 خاصیت به
ترتیب به پارامترهای n , f و i ارسال خواهند شد .
در مثال ، پس
از تعریف کلاس به ایجاد یک شی جدید به نام St1 و مقدار دهی خواص آن پرداخته ایم .
سپس توسط سه دستور چاپ در خروجی مشخصات کامل دانشجو جدید را در خروجی چاپ کرده ایم
. در انتها هم شماره دانشجویی ، دانشجو مذکور را دوباره مقدار دهی کرده و مقدار
جدید آن را چاپ کرده ایم :
Example |
|
<script
type ="text/javascript"> |
کد |
اشیای پیش ساخته در Java Script
شی string :
شی string یکی از اشیای پیش ساخته در جاوا
اسکریپت است . این شی برای دستکاری و انجام عملیات بر روی داده های متنی استفاده
می شود .
هر متغیر از
نوع متنی ، نمونه ای از شی string است .
در این صفحه به
معرفی خواص شی string و در
صفحه بعدی به معرفی متدهای آن خواهیم پرداخت .
خواص شی string :
در جدول زیر ، مجموعه خواص شی string ارائه شده است . برای دریافت اطلاعات درباره هر کدام ، بر روی نام آن کلیک کنید :
نام خاصیت |
شرح |
constructor |
نام تابع سازنده شی مورد نظر را بر می گرداند . |
length |
تعداد کاراکترهای یک عبارت متنی را بر می گرداند . |
prototype |
به برنامه نویس امکان اضافه کردن خواص و متدهای جدید را به شی می دهد . |
خاصیت constructor :
این خاصیت ، نام تابع سازنده شی مورد نطر را بر می گرداند . تغبع سازنده ، تابعی است که در هنگام تعریف اولیه ، شی را به وجود آورده است . شکل کلی استفاده از این خاصیت به شرح زیر است :
Syntax |
object.constructor |
مثال : در مثال زیر با استفاده از تابع string( ) یک شی string جدید به نام txtname ایجاد کرده ایم . به وسیله دستور document.write ، نوع تابع
سازنده شی را نشان داده ایم :
نکته : توجه شود
شکل صحیح نوشتاری تابع String با S بزرگ است .
Example |
|
< script
type="text/javascript" > |
کد |
خاصیت length :
این خاصیت ، تعداد کاراکترها ( حرمف ) عبارت متنی را بر می گرداند . فاصله بین حروف نیز یک کاراکتر محسوب می شود . شکل کلی استفاده از این خاصیت به شرح زیر است :
Syntax |
object.length |
مثال : در مثال زیر یک متغیر رشته ای را تعریف و سپس به وسیله دستور document.write ، طول آن را نشان داده ایم :
Example |
|
<script
type="text/javascript"> |
کد |
خاصیت prototype :
به وسیله این خاصیت می توان خواص و متدهای جدید مورد نظر خود را به شی اضافه کرد . پس از تعریف خاصیت یا متد ، می توان از آن همانند خواص ذاتی شی استفاده کرد . شکل کلی استفاده از این خاصیت به شرح زیر است :
Syntax |
object.prototype.name
= value |
مثال : در مثال زیر ابتدا یک کلاس به نام Student که دارای 3 خاصیت نام ( Name ) ، نام خواندگی ( Family ) و شماره دانشجویی ( ID ) است را ایجاد کرده و یک شی جدید به نام St 2 از روی آن ساخته ایم . سپس به کلاس یک خاصیت جدید به نام Major اضافه کرده ایم ، که قرار است رشته تحصیلی را برای دانشجو نگهداری کند . درپایان ، خاصیت جدید را برای شی St2 مقدار دهی کرده و آن را در خروجی نشان داده ایم :
Example |
|
<script
type="text/javascript"> |
کد |