الدالة ذات الرتبة الأعلى هي دالة تقوم بواحد على الأقل من: تأخذ دالة كمعامل، أو تعيد دالة. هذا ممكن لأن الدوال هي قيم من الدرجة الأولى في JS (يمكنك تمريرها مثل أي قيمة أخرى).
تمرير دالة
js
[, , ].( n * );
button.(, handler);
( (), );
الدالة ذات الرتبة الأعلى هي دالة تقوم بواحد على الأقل من: تأخذ دالة كمعامل، أو تعيد دالة. هذا ممكن لأن الدوال هي قيم من الدرجة الأولى في JS (يمكنك تمريرها مثل أي قيمة أخرى).
[, , ].( n * );
button.(, handler);
( (), );
function multiplier(factor) {
return n => n * factor; // returns a function that remembers `factor`
}
const double = multiplier(2);
const triple = multiplier(3);
double(5); // 10
triple(5); // 15
هنا multiplier تبني دوال متخصصة من دالة عامة — closure يلتقط factor.
function withLogging(fn) {
return (...args) => {
console.log(`calling with`, args);
const result = fn(...args);
console.log(`result`, result);
return result;
};
}
const loggedAdd = withLogging((a, b) => a + b);
الدوال ذات الرتبة الأعلى تجعل الكود تصريحياً وقابلاً لإعادة الاستخدام.
هي تشكل أساس أساليب المصفوفة (map/filter/reduce)، ومعالجة الأحداث، والـ middleware، والمزخرفات، والـ currying، وأنماط React (HOCs، custom hooks).
بدلاً من كتابة منطق الحلقة ذاته مراراً، تمرر السلوك كدالة.
مكتبة من أسئلة مقابلات تقنية المعلومات مع إجابات مفصّلة — من المبتدئ إلى المتقدم.
تبرع