روز خوش

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

برای حل این مشکل من از ویژگی شی‌گرایی و تعریف یه شی در بیرون بدنه تابع استفاده کردم و جواب داد :)

برای این کار، من یه شی به این صورت تعریف کردم

var myObject = { Name:"variable_name", variable:[]};

این شی توی فضای گلوبال هستش و تو هیچ بلاکی قرار نگرفته.

بعد از اینکه آرایه تکمیل شد، متغیر "variable" شی و برابر آرایه قرار دادم.

myObject.variable = myArray;

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

myNewVariable = myObject.variable;

تا بعد :)