Ali Razavi
Ali Razavi
خواندن ۲ دقیقه·۳ سال پیش

closure function در جاوا اسکریپت

مقدمه :

خوب دوستان عزیز ? بعد از مدت ها دوری دوباره اومدم با یک مفهوم خفن ( که داخل اکثر زبان های برنامه نویسی وجود داره ) که خیلی ها نمیدونید چیه و به چه کار میاد اونم چیزی نیست جز closure function این بار داخل جاوا اسکریپت میخایم بررسیش کنیم . پس بزن بریم ?




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

اما حالا جریان closure function چیه ؟

closure function چیست ؟

فرض کنید با دانشی که الان داریم ( یعنی اینکه closure function نمیدونیم چیه ) این فرضیه رو میخایم انجام بدیم که یک عدد بدیم به تابع مون و همون تابع یک تابع دیگه رو صدا بزنه و یک عدد دیگه بگیره و کار تابع دومی این باشه عدد اولی رو با دومی جمع کنه ؟ ? وات د هل علی چی میگی تو ؟؟ مگه داریم ؟! ?

آره داریم همچین چیزی با closure function میشه انجامش داد پس بریم سراغ کد ? تا مملوس تر براتون بشه جریان


خوب ما اومدیم اینجا یک تابع تعریف کردیم به اسم getAdder که یک ورودی میگیره برامون بعد اومدیم داخل دل تابع getAdder یک تابع به اسم sum تعریف کردیم و اونو return کردیم و داخل بدنه sum اومدیم یک عدد ورودی گرفتیم که میاد اون عدد از getAdder گرفتیمو با عدد که داخل تابع sum گرفتیم جمع کردیم و عملیات return کردیم .

موقعه استفاده هم باید اول تابع getAdder رو صدا بزنیم و برای استفاده از تابع دوم باید اونو داخل یک متغیر قرار بدیم سپس متغیر دوم sumFunction رو به صورت تابع باید صدا بزنیم و ورودی رو بهش پاس بدیم

به این عملیات بالا که داخل یک تابع تابع دیگه ایی رو بر میگردونیم بهش میگن closure function

استفاده از closure function رو میتونید داخل useEffect داخل ری اکت ببنید موقعه که میخاید cleanup کنید داخل useEffect مقادیر رو چون ما میایم داخل یک تابع یک تابع دیگه رو return میکنیم .

سخن پایانی

لایک ? کامنت ? یادتون نره اگر خوشتون اومد از مطلب ?

javascriptfunctionClosurevariablescope
برنامه نویس دون پایه
شاید از این پست‌ها خوشتان بیاید