در بخشهای قبل با بعضی از object ها یا همان شئ های جاوااسکریپت مانند، شئ Date و آرایه ها آشنا شدید. در این صفحه قصد داریم در مورد شئ های دیگر در جاوااسکریپت صحبت کنیم.
ادامه مطلب را بخوانید...
شئ جاوااسکریپت چیست؟
وظیفه شئ ها را می توان شبیه به متغیر ها دانست اما شئ ها بسیار کامل تر از متغیرها هستند چون آنها می توانند اطلاعات بیشتری را در خود ذخیره کنند و همچنین تفاوت دیگری هم که با متغیرها دارند اینست که متغیرها باید تعریف شوند تا جاوااسکریپت آنها را بشناسد اما بعضی از شئ ها در جاوااسکریپت ساخته و تعریف شده اند. این شئ های از قبل تعریف شده را درون ساخت یا Built-in می گویند مانند شئ Date . البته همانطور که میدانید باید همین اشیاء هم در ابتدای کد یکبار دیگر با دستور new تعریف شوند:
name = new Array ( )
پس فراموش نکنید که از این دستور برای شروع یک object استفاده کنید.
کلیه شئ ها دارای خصوصیات و متدهای شناخته شده برای جاوااسکریپت هستند که آنها را با گذاشتن یک نقطه بعد از خود شئ بکار می بریم و می توانیم مقادیر مختلفی را برای آنها در نظر بگیریم.
انواع اشیاء
به غیر از شئ های درون ساخت Date و Array که در صفحات قبل با آنها آشنا شدید، شئ های درون ساخت دیگر جاوااسکریپت عبارتند از شئ String و Math و شئ هایی که مربوط به HTML DOM می شوند. در بخش های بعدی به ترتیب به توضیح هر کدام از این اشیاء خواهیم پرداخت.
دستور with
در این دستور شما می توانید یک شئ را به همراه خصوصیات و متدهایش بصورت پیش فرض در اسکریپت خود تعریف کنید. این دستور به نوعی کد شما را راحت تر و خلاصه تر می کند و مانند توابع فقط اسم تعیین شده را در کدها بکار می برید که جاوااسکریپت کلیه خصوصیات و متدهای آنرا برایش در نظر خواهد گرفت. قالب دستور with به شکل زیر است:
.... javascript code ....
}
روش ساخت یک شئ
در بالا صحبت از یک سری اشیاء شد که جاوااسکریپت از قبل با آنها آشناست اما گاهی اوقات نیاز هست که یک شئ را خودتان تعریف کنید تا بهتر بتوانید اسکریپت خود را مدیریت کنید. البته توسط دستور with هم می توانید اینکار را انجام دهید، به این صورت که اسم شئ مورد نظر را بجای name در الگوی بالا بنویسید و خصوصیت و متد آنرا در خطوط بعدی بین { } تعریف کنید.
اما اگر بخواهید یک شئ را در اسکریپت خود بسازید نیاز به دو چیز دارید، ابتدا یک تابع سازنده که به آن Constructor می گویند و در آن نوع شئ تعیین می شود، سپس به نمونه شئ که از آن تابع استفاده می کند و به آن Instance می گویند که توسط دستور new تعریف می شود. این مطلب ممکن است کمی گیج کننده باشد اما به مثال زیر توجه کنید تا کاملاً به ساخت شئ توسط خودتان تسلط پیدا کنید.
می خواهیم یک شئ برای اتومبیل تعریف کنیم که خصوصیاتی مانند اسم، رنگ و مدل را داشته باشد. برای اینکار ابتدا یک تابع باید تعریف کنیم بنام car و خصوصیات آنرا به عنوان پارامترهایش در پرانتز بنویسیم و سپس این پارامترها را بر اساس خصوصیاتش مقداردهی می کنیم:
this.name = name
this.model = model
this.color = color
}
به عبارت this دقت کنید، این یک دستور جاوااسکریپت است و به شئ که در حال تعریف آن هستیم، اشاره دارد و در حقیقت به مفسر جاوااسکریپت می فهماند که این خصوصیت شئ تعریف شده با این مقدار است و شما باید از این دستور استفاده کنید تا خصوصیت یک شئ را برایش تعریف کنید و مقدار آنها را هم مانند بالا مشخص کنید.
حالا باید یک شئ جدید برای آن بسازید که این شئ جدید را در متغیری بنام mycar ذخیره می کنیم:
این خط کد به جاوااسکریپت می فهماند که یک شئ بنام mycar دارای خصوصیات اسم که Corvette و مدل Z06 و رنگ Red می باشد. شما می توانید هر شئ دیگر که بخواهید با دستور new بسازید:
الان می خواهیم از شئ اول اسم ماشین و از شئ دوم رنگ را در صفحه چاپ کنیم:
" )
document.write ( thecar.color )
بعد از اینکه خصوصیاتی برای یک شئ تعریف کردید حالا نوبت به متدهای شئ ساخته شده، می رسد. در اینجا متدی که تعریف می کنیم برای کلیه ماشینها می توانیم بکار بریم. الگوی کلی یک متد به شرح زیر است:
object شئ است که ساختیم، methodname نام متدی است که شما در نظر می گیرید و function name هم اسم تابعی که باید بسازید. سپس هر کجا که لازم بود از متد استفاده کنید ابتدا شئ و سپس با گذاشتن یک نقطه متد را به همراه پرانتز می نویسید که اگر این متد پارامتری هم داشت باید آنرا داخل پرانتز معین کنید.
متدی که می خواهیم برای شئ Car بسازیم را باید ابتدا بصورت یک تابع تعریف کنیم:
var result = " I like " + this.name + " " + this.model + " with " + this.color + " color."
document.write ( result )
}
حالا با استفاده از دستور this این تابع را به عنوان متد شئ Car تعریف می کنیم:
this.name = name
this.model = model
this.color = color
this.displaycar = displaycar
}
بعد از تعریف توابع، شئ را توسط دستور new می سازیم و متد را اجرا می کنیم:
mycar.displaycar ( )
دستور prototype
در طول اسکریپت شما، ممکن است به جایی برسید که نیاز داشته باشید یک خصوصیت و یا یک متد دیگر برای شئ ساخته شده در خارج از آن توابع تعریف شود که با استفاده از دستور prototype می توانید آنها را تعریف کنید. الگوی این دستور به این صورت می باشد:
کلیه دستورات بالا را توسط توابع و آرایه می توانید انجام دهید اما تعریف کردن شئ در اسکریپت های طولانی بسیار راحت تر و سریع تر از نوشتن بقیه دستورات می باشد.
در صفحات بعدی، با شئ های درون ساخت string ، math و همچنین شئ های مربوط به HTML DOM آشنا خواهید شد.
نظرات شما عزیزان: