مبحث شی گرايي در جاوا اسکريپت

مقدمه ای بر مبحث شی گرايي :

جاوا اسکريپت ، يک زبان برنامه نويسی شی گرا يا ( 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">
  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>
کد
خروجی


راجع این مطلب سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...         >>>>>  ورود به انجمن تخصصی


نظر خودتان درباره این صفحه را با ما در میان بگذارید :

آیا مطالب این صفحه برای شما مناسب و مفید بود ه است :

نام :                 
آدرس Email :    
 
نظر شما :  
 
سوال امنیتی : پایتخت ایران ؟