چه زمان هایی باید از تابعمون return بگیریم و چه زمان هایی نباید.
سلام،
پاسخ کلی اینست که، وقتی نیاز داشته باشید یک مقدار را به بیرون از تابع انتقال بدید.
منتها اینکه چه جاهایی نیاز به انتقال مقادیر دارید باید مثالهای مختلف رو ببینید.
کاملاً بستگی به سناریو و تصمیم شما دارد که چگونه یک مسئله رو بخواید حل کنید.
برای مثال مسئله اینست، تابعی بنویسید که عدد زوج را از فرد تشخیص دهد:
شما میتوانید تابعی بنویسید که بعد از مشخص کردن اینکه عدد زوج است یا فرد در انتهای همان تابع از طریق alert یا console.log یا document.write یا ... همانجا چاپ کنید که عدد زوج بوده یا فرد بوده.
سناریو میتواند به شکل دیگر پیاده شود یعنی همان تابع را مینویسید ولی در انتها نمیخواهید آنجا اعلام شود بلکه باید زوج یا فرد بودن را در بیرون از تابع استفاده کنید و جاهای مختلفی از کد نیاز دارید، بنابراین نتیجه را return میکنید.
در کل دست شما باز است که چطور یک تابع را بنویسید، مهم اینست که منطق برنامه ی شما چه شرایطی را میخواهد.
یه وقت هایی هم پیش میآید که میخواهید اگر شرایطی در تابع اتفاق افتاد بقیه کدهای تابع اجرا نشوند و ادامه تابع متوقف شود، اینجا هم با استفاده از return میتوانید از تابع خارج شوید.
هم میتوانید با مقدار از تابع خارج شوید و هم بدون مقدار، یعنی return خالی.
::چند مثال از توضیحات بالا و تکمیل موضوع RETURN در تابع::
1. برگرداندن یک نتیجه:
وقتی میخواهید نتیجه یک تابع را به کدی که تابع را فراخوانی کرده باز گردانید، از return استفاده میکنید.
functionadd(a, b) {
return a + b;
}
let sum = add(3, 4); // sum = 7
2. پایان زودهنگام تابع:
اگر بخواهید تابع را قبل از اینکه به پایان آن برسید خاتمه دهید، از return بدون پارامتر استفاده میکنید.
functionprintMessage(message) {
if (!message) {
return;
}
console.log(message);
}
3. برگرداندن یک تابع:
گاهی اوقات ممکن است بخواهید یک تابع دیگر را به عنوان نتیجه برگردانید.
functionwrapper() {
returnfunctioninner() {
console.log("Hello from the inner function!");
}
}
const myFunc = wrapper();
myFunc(); // Outputs: "Hello from the inner function!"
4. توابع بدون return:
همه توابع در جاوااسکریپت بصورت پیش فرض undefined برمیگردانند اگر هیچ مقدار return ای تعریف نشده باشد.
5. توابع سازنده یا کلاسها: (در سرفصلهای آینده آموزش داده میشود)
وقتی از توابع به عنوان توابع سازنده (constructor functions) استفاده میکنید یا با کلاسها کار میکنید، بطور معمول نیازی به استفاده از return نیست، چرا که یک شیء جدید بصورت خودکار ساخته و برگردانده میشود.