Generator
در جاوااسکریپت، Generator نوع خاصی از تابع هست که میتونه اجرای خودش رو متوقف کنه و بعداً دوباره از همون نقطه ادامه بده.
این ویژگی با استفاده از کلمه کلیدی function*
و دستور yield
پیادهسازی میشه.
🔹 ساختار Generator
-
function*
→ تعریف تابع Generator -
yield
→ مقدار رو برمیگردونه و اجرای تابع رو متوقف میکنه
🔹 استفاده از Generator
📌 خروجی:
🔹 پیمایش Generator با for...of
📌 خروجی:
🔹 مثال کاربردی (تولید بینهایت اعداد)
🔹 فرق Generator با Iterator
-
Iterator → باید دستی
next()
رو پیادهسازی کنیم. -
Generator → خودش به صورت خودکار یک Iterator میسازه و کار رو راحت میکنه.
✅ خلاصه
-
Generatorها با
function*
تعریف میشن. -
با
yield
میشه مقدارها رو مرحلهبهمرحله برگردوند. -
Generatorها در واقع Iteratorهای سادهشده هستن.
-
میشه از
for...of
برای پیمایش Generator استفاده کرد.