()Function bind
متد ()bind
یک نسخه جدید از تابع میسازه که همیشه this
مشخصی دارد و میتواند آرگومانهای پیشفرض هم داشته باشد.
🔹 تفاوت اصلی با ()call
و ()apply
این است که:
-
()call
و()apply
تابع را همان لحظه اجرا میکنند. -
()bind
یک تابع جدید میسازد که بعداً میتوان آن را فراخوانی کرد.
1️⃣ سینتکس
-
func
→ تابع اصلی -
thisArg
→ مقداری کهthis
در تابع خواهد بود -
arg1, arg2, ...
→ آرگومانهای پیشفرض
2️⃣ مثال ساده
🔹 this
همیشه به person
اشاره میکند و آرگومان "Hello"
از قبل تنظیم شده است.
3️⃣ استفاده در callback
یکی از کاربردهای رایج ()bind
جلوگیری از تغییر this
در callback ها است:
🔹 بدون bind()
, this
در setTimeout
به window
اشاره میکرد.
4️⃣ پیشتنظیم آرگومانها (Partial Application)
🔹 با این روش میتوان آرگومانها را از قبل تنظیم کرد و تابع جدید ساخت.
5️⃣ جمعبندی
-
()bind
یک نسخه جدید از تابع میسازد -
این نسخه همیشه
this
مشخصی دارد -
میتوان آرگومانهای پیشفرض تعریف کرد
-
مناسب برای callback ها، event handlers، و partial application