آموزش جاوا اسکریپت

آموزش جاوا اسکریپت - مرور اشیاء

جاوا اسکریپت یک زبان برنامه نویسی شی گرا (OOP) است. یک زبان برنامه نویسی اگر بتواند چهار قابلیت اساسی زیر را برای توسعه دهندگان فراهم کند، شی گرا یا   object-oriented می باشد:

  • Encapsulation (کپسوله سازی): دارای توانایی ذخیره سازی اطلاعات مرتبط به صورت داده ، متد و یا هر دو در شئ (object) می باشد.
  • Aggregation (انتزاعی یا کلی): قابلیت ذخیره شئ (object) در شئ (object) دیگر می باشد.
  • Inheritance (وراثت): توانایی یک کلاس برای متکی بودن بر یک کلاس (یا تعدادی از کلاس ها) دیگر برای برخی از خاصیت ها (properties) و متد های (methods) آن می باشد.
  • Polymorphism: توانایی نوشتن یک تابع یا روش که به شیوه های گوناگون کار می کند.

اشیاء از attribute (ویژگی) تشکیل شده است. اگر attribute تابع را شامل شود به عنوان یک متد از شئ در نظر گرفته می شود و در غیر این صورت attribute به عنوان یک property می باشد.

 

خاصیت شئ

Object properties (خاصیت شیء) می تواند هر یک از سه نوع داده اولیه یا هر نوع داده انتزاعی مانند یک شئ دیگر باشد. Object properties معمولا متغیرهایی هستند که در داخل متدهای شئ استفاده می شوند، اما همچنین می توان آن ها را به عنوان متغیرهای قابل مشاهده در سطح جهانی یا globally visible variables دانست که در سراسر صفحه استفاده می شوند.

دستور نگارش (syntax) برای افزودن property به شئ به شرح زیر می باشد:

objectName.objectProperty = propertyValue;

برای مثال: کد زیر document title (عنوان سند) را با استفاده از خاصیت "title" از شیء document (سند) می گیرد.Code متدهای شئ متدها توابعی هستند که اجازه انجام کار بر روی چیزی را به شیء و یا به صورت برعکس به آن چیز اجازه کار بر روی شئ را می دهند. یک تفاوت کوچک میان تابع و متد وجود دارد - در تابع  واحدی مستقل از دستورات است و متد به یک شیء وابسته است و می توان توسط کلمه کلیدی this به آن reference  (ارجاع) نمود.متد ها برای همه چیز مفید هستند از نمایش (display) محتویات شئ به صفحه تا انجام عملیات پیچیده ریاضی در یک گروه از خاصیت ها (properties) و پارامترهای (parameters) محلی.

برای مثال: در زیر مثال ساده ای برای نحوه استفاده از متد write() از document object برای نوشتن محتوای سند وجود دارد.

document.write("This is test");

 

اشیاء تعریف شده توسط کاربر

تمام اشیاء تعریف شده توسط کاربر (user-defined) و اشیاء ساخته شده در فرزندان از یک شیء به نام Object می باشند.

عملگر new

عملگر new برای ایجاد یک نمونه از یک شئ مورد استفاده قرار می گیرد. برای ایجاد شئ، عملگر new از متد سازنده پیروی می کند.

در مثال زیر متدهای سازنده Object()،Array() و Date() می باشند. این ها سازندگان ساخته شده در توابع جاوا اسکریپت می باشند.

var employee = new Object();
var books = new Array("C++", "Perl", "Java");
var day = new Date("August 15, 1947");

 

سازنده Object()

سازنده تابعی است که یک شئ را ایجاد کرده و آن را مقداردهی اولیه می کند. جاوا اسکریپت یک تابع سازنده خاص به نام Object () را برای ساختن شئ فراهم می نماید. مقدار بازگشتی از سازنده Object () به یک متغیر اختصاص داده می شود.

متغیر حاوی reference  (ارجاع) به شئ جدید می باشد. خاصیت های اختصاص داده شده properties assigned))  به شیء متغیر نیستند و با کلیدواژه var تعریف نشده اند.

مثال 1

مثال زیر نحوه ایجاد شئ را نشان می دهد.

<html>
   <head>
      <title>User-defined objects</title>
      
      <script type="text/javascript">
         var book = new Object();   // Create the object
         book.subject = "Perl"; // Assign properties to the object
         book.author  = "Mohtashim";
      </script>
      
   </head>
   
   <body>
   
      <script type="text/javascript">
         document.write("Book name is : " + book.subject + "<br>");
         document.write("Book author is : " + book.author + "<br>");
      </script>
   
   </body>
</html>

خروجی

Book name is : Perl 
Book author is : Mohtashim

 

مثال 2

مثال زیر نحوه ایجاد شئ با استفاده از تابع User-Defined  را نشان می دهد. کلمه کلیدی this برای اشاره به شئ منتقل شده به تابع استفاده می شود.

<html>
   <head>
   
   <title>User-defined objects</title>
   
      <script type="text/javascript">
         function book(title, author){
            this.title = title; 
            this.author  = author;
         }
      </script>
      
   </head>
   <body>
   
      <script type="text/javascript">
         var myBook = new book("Perl", "Mohtashim");
         document.write("Book title is : " + myBook.title + "<br>");
         document.write("Book author is : " + myBook.author + "<br>");
      </script>
      
   </body>
</html>

خروجی

Book title is : Perl 
Book author is : Mohtashim

 

تعریف متدها برای یک شئ

مثال های پیشین نحوه ایجاد شئ توسط سازنده (constructor) و اختصاص آن از طریق خاصیت ( assigns properties) را نشان داده اند. حال به نحوه اختصاص دادن متدها به شئ می پردازیم.

مثال

 مثال زیر نحوه افزودن تابع به شئ را نشان می دهد.

<html>
   <head>
   <title>User-defined objects</title>
   
      <script type="text/javascript">
         // Define a function which will work as a method
         function addPrice(amount){
            this.price = amount; 
         }
         
         function book(title, author){
            this.title = title;
            this.author  = author;
            this.addPrice = addPrice; // Assign that method as property.
         }
      </script>
      
   </head>
   <body>
   
      <script type="text/javascript">
         var myBook = new book("Perl", "Mohtashim");
         myBook.addPrice(100);
         
         document.write("Book title is : " + myBook.title + "<br>");
         document.write("Book author is : " + myBook.author + "<br>");
         document.write("Book price is : " + myBook.price + "<br>");
      </script>
      
   </body>
</html>

خروجی

Book title is : Perl 
Book author is : Mohtashim 
Book price is : 100

 

کلمه کلیدی with

  کلمه کلیدی with به عنوان اصطلاح برای ارجاع (reference) به خاصیت شیء یا متدهای شئ مورد استفاده قرار می گیرد.

شئ اختصاص یافته با with به شیء پیش فرض (default object) برای مدت زمان بلوک در زیر شرح داده شده است. propertieها و method ها برای شیء می تواند بدون نامگذاری شئ مورد استفاده قرار گیرند.

دستور نگارش (syntax)

دستور نگارش (syntax) برای شئ به شرح زیر است.

with (object){
   properties used without the object name and dot
}

مثال

<html>
   <head>
   <title>User-defined objects</title>
   
      <script type="text/javascript">
         // Define a function which will work as a method
         function addPrice(amount){
            with(this){
               price = amount;
            }
         }
         
         function book(title, author){
            this.title = title;
            this.author  = author;
            this.price = 0;
            this.addPrice = addPrice; // Assign that method as property.
         }
      </script>
      
   </head>
   <body>
   
      <script type="text/javascript">
         var myBook = new book("Perl", "Mohtashim");
         myBook.addPrice(100);
         
         document.write("Book title is : " + myBook.title + "<br>");
         document.write("Book author is : " + myBook.author + "<br>");
         document.write("Book price is : " + myBook.price + "<br>");
      </script>
      
   </body>
</html>

خروجی

Book title is : Perl 
Book author is : Mohtashim 
Book price is : 100

 

اشیاء Native (بومی) جاوا اسکریپت

جاوا اسکریپت چندین شئ ساخته شده یا native  دارد. این اشیاء در هر نقطه از برنامه شما قابل دسترس می باشند و در هر مرورگر نیز به همان شکل کار می کند.

در زیر لیستی از مهم ترین Native Objectها قرار دارد.

در صورتی که سوال و یا نظری دارید، از بخش نظرات با ما در میان بگذارید.

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

شما چه نظر و یا سوالی درباره این نوشته دارید؟

مبحث آموزشی

آموزش جاوا اسکریپت

Learn JavaScript

سرفصل ها

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

دنبال کردن تلگرام کانال سافت اسکیل

https://telegram.me/softskill_ir

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

کلیک کنید و سوالات خود را از ما بپرسید
لطفا فرم سوال را پر کنید

سوال شما با موفقیت ثبت شد. برای اینکه بتوانیم به شما اطلاع رسانی کنیم، موارد زیر را وارد کنید:

لطفا چند لحظه منتظر بمانید ...