مبحث شی گرايي در جاوا اسکريپت
مقدمه ای بر مبحث شی گرايي :
جاوا اسکريپت ، يک زبان برنامه نويسی شی گرا يا ( 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 و مقدار دهی خواص آن پرداخته
ايم . سپس توسط سه دستور چاپ در خروجی مشخصات کامل دانشجو جديد را در خروجی چاپ کرده
ايم . در انتها هم شماره دانشجويي ، دانشجو مذکور را دوباره مقدار دهی کرده و مقدار
جديد آن را چاپ کرده ايم :
<script type ="text/javascript">
function Student (
n , f , i )
{
this.Name = n ;
this.Family =
f ;
this.ID = i ;
}
var St1 = new
Student ( "Mehrdad" , "Fattahi" , 122092
) ;
document.write ( "Name :" +
St1.Name +"<br />");
document.write ( "Family : "
+ St1.Family +"<br />");
document.write ( "Studnet ID : "
+ St1 .ID +"<br />" );
St1.ID = 299302 ;
document.write ( "New Student ID : "
+ St1.ID ) ;
</script>
|
|
|