✅ همونطور که میدونید توی جاواسکریپت توابع ما first class هستن
✅ یعنی یک تابع رو به عنوان متغیر به تابع دیگه بفرستیم یا از تابع دیگه return اش کنیم
✅ تکنیک currying به شما این امکان رو میده که توابع با آرگومانهای متعدد رو به دنبالهای از توابع تبدیل کنی که این توابع هر کدام یک آرگومان را در یک زمان میگیرن.
✅ یعنی قابلیت استفاده مجدد، ترکیب بندی و انعطاف پذیری کد را ارتقا می دهد.
کد زیر رو درنظر بگیر
وقتی بخوایم از تابع total استفاده کنیم باید هربار هی بهش بگیم واحد پول ما دلاره یا ریاله و مدام اینو توی صدا زدن تکرار کنیم که خب خیلی خوب نیست
function total(sign, amount) {
return `${sign}${amount}`;
}
total("Dolar", 200);
total("Rial", 200);اما به لطف وجود first class function ها میتونیم از مفهوم currying استفاده کنیم
اینطوری دیگه فقط یکبار واحد پول رو تعیین میکنیم و هزار بار ازش استفاده میکنیم
function total(sign) {
return (amount) => {
return `${sign}${amount}`;
};
}
const totalDolar = total("Dolar");
const totalRial = total("Rial");
totalDolar(200);
totalDolar(200);به یه روش دیگه هم میشه حرکت currying رو زد اونم استفاده از bind هستش :
function multipleByNumber(y, x) {
return y * x;
}
const multipleByTwo = multipleByNumber.bind(this, 2);
const multipleByThree = multipleByNumber.bind(this, 3);
multipleByTwo(200);
multipleByThree(200);@LearnByLearn
#currying
#tips
#javascript