هیچ دوره ای در سبد آموزش شما وجود ندارد
مفهوم شی در جاوا اسکریپت
صفحه نخستجاوا اسکریپت یک زبان برنامه نویسی شی گراست (آبجکت) . در صورتی که یک زبان برنامه نویسی بتواند ۴ توانایی اصلی را برای توسعه دهنده ها مهیا سازد، شی گرا نامیده می شود:
- Encapsulation (حفاظت اطلاعات): قابلیت ذخیره اطلاعات مرتبط، داده ها یا متدها با هم در یک شیء.
- Aggregation (تجمع): قابلیت ذخیره یک شیء در شیء دیگر.
- Inheritance (توارث): قابلیت تکیه یک کلاس بر یک کلاس (یا چند کلاس) دیگر بر اساس بعضی از مشخصات یا متدهای آن.
- Polymorphism (چند فرمی): قابلیت نوشتن یک تابع یا متد که به چندین روش کار می کند.
آبجکتها (Object )، ترکیبی از ویژگی ها هستند. اگر یک ویژگی حاوی یک تابع باشد بصورت یک متد از شیء فرض می شود. در غیر این صورت یک صفت خاص است.
مشخصات Object
مشخصات Object (شیء) می تواند هرکدام از سه نوع داده اولیه یا هرکدام از انواع داده انتزاعی باشد. مشخصات Object معمولا متغیرهایی هستند که ذاتا در متدهای شیء استفاده می شوند، اما می توانند متغیرهای نمایانی باشند که در کل صفحه نیز استفاده می شوند.
سینتکس اضافه کردن یک ویژگی خاص به یک object:
objectName.objectProperty = propertyValue;
به عنوان مثال کد زیر نام سند را با استفاده از ویژگی “title” از شیء document دریافت می کند.
var str = document.title;
متدهای Object
متدها توابعی هستند که اجازه می دهد آبجکت عملی انجام داده یا اجازه می دهد بعضی اعمال روی آن صورت گیرد. تفاوت کوچکی میان متد و تابع وجود دارد، تابع یک واحد مستقل از دستورات است و متد ضمیمه یک شیء می شود و می تواند توسط کلمه کلیدی this به آن رجوع شود.
متدها برای همه چیز قابل استفاده هستند، از نمایش محتوی شیء روی صفحه تا اجرای عملیات پیچیده ریاضی در یک گروه از ویژگی های بومی و پارامترها.
به عنوان مثال، نمونه ساده روش استفاده از متد write() از شیء document برای نوشتن محتوی در سند نشاده داده شده است:
document.write("This is test");
Object های تعریف شده توسط کاربر
تمام اشیایی که توسط کاربر تعریف می شوند (user-defined) و Object های داخلی (built-in)، همه از نسل یک شیء به نام Object هستند.
عملگر new
عملگر new برای ایجاد نمونه ای از یک آبجکت استفاده می شوند.عملگر new قبل از متد constructor (سازنده) می آید.
در مثال زیر متدهای سازنده Object(), Array(), and Date(). هستند. این متدها جزو توابع داخلی جاوا اسکریپت هستند.
var employee = new Object(); var books = new Array("C++", "Perl", "Java"); var day = new Date("August 15, 1947");
متد سازنده Object()
یک سازنده تابعی است که object را ایجاد و ارزش گذاری اولیه می کند. جاوا اسکریپت یک تابع سازنده ویژه به نام Object() برای ساخت یک آبجکت مهیا می کند. مقداری که از سازنده Object() بازگردانده می شود به یک متغیر اختصاص داده می شود.
متغیر حاوی یک ارجاع برای شیء جدید است. مشخصات اختصاص داده شده به آبجکت از نوع متغیر ها نیستند و با کلمه کلیدی 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:
این مثال روش ساخت یک تابع تعذیف شده توسط کاربر را شرح میدهد. در اینجا کلمه کلیدی 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
تعریف متدها برای یک Object
مثال های قبل روش ایجاد object توسط سازنده و تخصیص مشخصات را شرح میداد. ولی لازم است تعریف یک object توسط تخصیص متد ها به آن را کامل کنیم.
مثال:
مثال زیر نشان میدهد چطور یک تابع را همراه یک object اضافه کنیم:
<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 به عنوان نوعی مختصر نویسی برای ارجاع مشخصات شیء یا متدها استفاده می شود. شیء تعیین شده به عنوان یک استدلال برای کلمه کلیدی with شیء پیش فرض برای طول بلوکی از کد را تشکیل می دهد که در آن قرار دارد. مشخصات و متدها برای object می توانند بدون نامگذاری شیء استفاده شوند.
سینتکس:
قواعد نوشتاری شیء with بصورت زیر است:
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
Object های بومی جاوا اسکریپت
جاوا اسکریپت دارای چندین object داخلی و بومی است. این object ها همه جا در برنامه شما قابل دسترس هستند و در مروگر هر سیستم عاملی به روشی یکسان کار میکنند.
در اینجا فهرستی از مهمترین object های بومی جاوا اسکریپت آورده شده:
- JavaScript Number Object
- JavaScript Boolean Object
- JavaScript String Object
- JavaScript Array Object
- JavaScript Date Objct
- JavaScript Math Object