کار با پِراپِرتی های مرتبط با آرایه ها در زبان جاوا اسکریپت

سیده آمین ارمان

کاربر نگاه دانلود
کاربر نگاه دانلود
عضویت
2016/05/10
ارسالی ها
1,730
امتیاز واکنش
20,744
امتیاز
795
محل سکونت
البرز
منظور از پِراپِرتی (Properties یا «مشخصه») در یک آرایه، به نوعی همان خصوصیات و جزئیات آرایه است که اطلاعاتی را درباره ی کلیّت آرایه در اختیار ما می گذارد و امکان افزودن قابلیت هایی به آن را نیز فراهم می کند. در زبان جاوا اسکریپت، برای آن که بتوان با پراپرتی های یک آرایه کار کرد، باید با استفاده از روشی به نام «Dot Notation» آن ها را فراخوانی کرد. شاید نام این روش کمی گیج کننده باشد اما استفاده از آن بسیار آسان است؛ ابتدا نام آرایه را می نویسیم، سپس یک نقطه (dot) در جلوی آن می گذاریم سپس نام پراپرتی را می آوریم:

myArray.property;
در ادامه، لیست پراپرتی های پرکاربردی که آرایه ها در زبان جاوا اسکریپت می توانند داشته باشند را آورده ایم:

پراپرتی کاربرد
prototype با کمک این پراپرتی، می توان یک متد یا پراپرتی دیگر را به آرایه اضافه کرد.
constructor فانکشن سازنده ی آبجکت مورد نظر را نمایش می دهد.
length تعداد المنت های موجود در آرایه را نشان داده یا تعداد مشخصی را تعیین می کند.
به کمک پراپرتی «prototype» می توانیم متدها یا پراپرتی های جدید به آرایه اضافه کنیم. به طور مثال، فرض کنیم که آرایه یی به شکل زیر در اختیار داریم:

var myArray = ["banana", "apple", "orange", "watermelon"];
به خاطر داشته باشید
برای آزمایش کدهای ارائه شده و دیدن نتیجه ی آن ها می توانید از کنسول جاوا اسکریپت مرورگر کروم استفاده کنید که با کلیدهای ترکیبی Ctrl + Shift + J قابل دسترسی است.
در کد بالا، آرایه یی ساخته ایم تحت عنوان myArray که دربرگیرنده ی تعدادی نام میوه است. اکنون می خواهیم متدی برای این آرایه طراحی کنیم که بتواند تمامی حروف اعضای آرایه را به حروف بزرگ تبدیل کند. سپس این متد به عنوان یک پراپرتی جدید برای آرایه ی مد نظرمان تعریف شود. در چنین شرایطی، باید از پراپرتی prototype استفاده کنیم:

Array.prototype.goUp =
function() {
for (i = 0; i < this.length; i++) {
this = this.toUpperCase();
}
};
تکه کد بالا، یک متد جدید با استفاده از پراپرتی prototype ایجاد می کند، اکنون زمان آن است که روش استفاده از متد ساخته شده را بررسی کنیم. یک پراپرتی جدید به نام «goUp» ایجاد شده، با استفاده از روش "dot notation" این پراپرتی را در آرایه ی myArray به کار می بریم:

myArray.goUp();
حال تمامی حروف اعضای این آرایه به حروف بزرگ تبدیل شده اند و اگر اعضای آرایه را فراخوانی کنیم، نتیجه را خواهیم دید:

console.log(myArray); //returns ["BANANA", "APPLE", "ORANGE", "WATERMELON"]
نکته
شاید بسیاری از کدهای استفاده شده در اینجا، برای شما ناآشنا باشند اما نگران نباشید چرا که در فصل های آینده، تمامی آن ها به طور مفصل توضیح داده خواهند شد. فقط به طور خلاصه بدانید که با استفاده از حلقه ی "for" تک تک حروف اعضای آرایه را خوانده و سپس به کمک فانکشن پیش فرض جاوا اسکریپت ()toUpperCase، آن ها را به حروف بزرگ تبدیل می کنیم.
حال بیایید پراپرتی بعدی یعنی constructor را بررسی کنیم. این پراپرتی، فانکشن سازنده ی یک آبجکت را به عنوان خروجی اعلام می کند. البته باید توجه داشته باشیم که خروجی این پراپرتی، اشاره به فانکشن سازنده ی اصلی دارد نه اسم آن فانکشن (که امکان دارد نامی دلخواه از طرف ما باشد.) برای آن که بهتر این پراپرتی را درک کنیم، بهتر است آن را در یک مثال به کار ببریم:

myArray.constructor; //returns function Array() { [native code] }
پراپرتی constructor همواره خروجی مشابهی خواهد داشت؛ بدین معنا که اگر این پراپرتی را برای متغیرهای عددی استفاده کنید، به جای عبارت «()Array» در خروجی بالا، عبارت «()Number» نمایش داده می شود و باقی عبارات دقیقاً یکسان خواهند بود. این موضوع برای استرینگ ها نیز صحت دارد.

بدین ترتیب، کاربرد پراپرتی constructor آن است که یک متغیر را بررسی کرده و ماهیت آن را به ما اعلام کند. در اینجا، خروجی کد به ما می گوید که آرایه ی myArray با استفاده از فانکشن پیش فرض جاوا اسکریپت ()Array ایجاد شده و به همین دلیل، یک آرایه است.

این پراپرتی زمانی کاربرد خواهد داشت که بخواهیم از نوع و ماهیت یک متغیر اطمینان پیدا کنیم یا در پروسه ی تأیید اطلاعات از آن استفاده کنیم. برای مثال، در برخی فرم های ثبت نام، برخی فیلدها حتماً می بایست با شماره تکمیل شوند و در این زمان است که پراپرتی constructor می تواند عمل بررسی اطلاعات وارد شده را انجام دهد.

و اما پرکاربرد ترین پراپرتی جاوا اسکریپت، پراپرتی length است که می تواند تعداد اعضای آرایه (defined یا undefined) را به ما اعلام کرده یا آن که تعدادشان را به مقداری خاص محدود کند. برای نمونه:

var myArray = ["one", "two", "three", "four"];
myArray.length; //returns 4
myArray.length = 2;
myArray.length; //returns 2
console.log(myArray); //returns ["one", "two"]
در این تکه کد، ابتدا یک آرایه با چهار عضو ایجاد می کنیم. زمانی که برای اولین بار از جاوا اسکریپت می خواهیم که تعداد اعضای این آرایه را به ما نشان دهد (خط دوم)، عدد 4 نمایش داده می شود.

سپس با استفاده از همان پراپرتی length، به جاوا اسکریپت می گوییم که ماکزیمم تعداد اعضای آرایه ی myArray می بایست 2 عدد باشد (خط سوم). بدین ترتیب زمانی که برای دومین بار تعداد اعضای آرایه را از جاوا اسکریپت می خواهیم، می بینیم که این عدد به 2 کاهش پیدا کرده. حال در نهایت اگر اعضای آرایه را چاپ کنیم، متوجه خواهیم شد که فقط دو عضو در این آرایه باقی مانده و سایرین حذف شده اند.

دلیل این موضوع آن است که اگر محدودیتی برای آرایه تعیین نکنیم، آرایه به همان میزان که در آن عضو ایجاد شود، بزرگ خواهد شد. اما زمانی که با استفاده از پراپرتی length، آرایه را مجبور می کنیم که فقط به تعداد مشخصی عضو داشته باشد، آن وقت اعضای اضافی از آرایه حذف می شوند.

در اینجا، آرایه در ابتدا چهار عضو one، two، three و four که همه ی آن ها استرینگ هستند را در اختیار داشت. زمانی که تعداد اعضای آرایه با استفاده از پراپرتی length محدود شد، فقط دو عضو اول یعنی one و two باقی ماندند تا شرط ما برقرار شود و اندازه ی آرایه (یا همان تعداد اعضای آن) به 2 کاهش یابد.

آن سوی ماجرا زمانی اتفاق می افتد که شما با استفاده از پراپرتی length، تعداد اعضای مجاز برای آرایه را بیشتر از مقدار فعلی آن قرار دهید. فرض کنیم:

var myArray = ["one", "two", "three", "four"];
myArray.length; //returns 4
myArray.length = 10;
myArray.length; //returns 10
در این مورد، آرایه ی ما در ابتدا دارای 4 عضو بود که پراپرتی length نیز همین موضوع را اعلام می کند (خط دوم) اما زمانی که به آرایه اجازه می دهیم تا حداکثر 10 عضو را در آرایه نگهداری کند، خانه های اضافی در آرایه ایجاد می شوند، هر چند که عضوی در داخل آن ها قرار نگرفته باشد و خالی (undefined) باشند.

به خاطر داشته باشید
توجه داشته باشیم که آنچه در زبان جاوا اسکریپت تحت عنوان «پراپرتی» شناخته می شود، در برخی از دیگر زبان های برنامه نویسی همچون پی اچ پی، پایتون و غیره، «فانکشن» نامیده می شود. آنچه مهم است توجه به این نکته است که پراپرتی ها یا فانکشن ها، اجزایی از پیش تعریف شده در زبان های برنامه نویسی هستند که بسته به نیاز خود می توانیم آن ها را در برنامه ها مورد استفاده قرار دهیم.
 

برخی موضوعات مشابه

بالا