محمود عوف2 نشر 20 أغسطس 2024 أرسل تقرير نشر 20 أغسطس 2024 السلام عليكم ورحمة الله وبركاته اريد شرح مفصل للدوال عديمة الاسم وما الفرق بينها وبين الدوال المسماة واين استخدم هذه واين استخدم هذه حيث ان في مواقع تحدياتا لبرمجة اغلب الدوال المستخدمة في حل التحديات تكون عديمة الاسم وشكرا مقدما علي الرد 1 اقتباس
0 Mustafa Suleiman نشر 20 أغسطس 2024 أرسل تقرير نشر 20 أغسطس 2024 تلك عبارة عن دوال يتم تعريفها بدون اسم، أي بدلاً من تعريفها باستخدام الكلمة المفتاحية function متبوعة باسم، نقوم تعريفها باستخدام الكلمة المفتاحية function فقط، أو باستخدام صيغة arrow function. function() { console.log(" دالة عديمة الاسم!"); } والدوال عديمةالاسم لا نستطيع إعادة استخدامها مباشرًة، فليس لها اسم نستطيع من خلالها استدعائها. أيضًا لا يتم تنفيذ الرفع Hoisting لها، أي لا تستطيع استدعائها قبل تعريفها في الكود أي قبل السطر الخاص بها في الكود، فنحن لا نستطيع ذلك بدون اسم لذا لا يتم رفعها. والفائدة منها هي استخدامها كدالة IIFE أي كـ (Immediately Invoked Function Expression) وهي دوال يتم تعريفها وتنفيذها مباشرةً. (function() { console.log("أنا دالة عديمة الاسم!"); })(); لاحظ الأقواس التي حول الدالة والقوسين بعدها والتي تعني تنفيذها مباشرًة فور الوصول لتلك الدالة في الكود من قبل المترجم. بالتالي في أي موضع لا تحتاج به إعادة استخدام تلك الدالة مرة أخرى في الكود، فقم بكتابتها بدون اسم، مثل دالة IIFE. أو مثلاً كـ دوال Callback والتي تستخدم بكثرة كـ دوال يتم تمريرها كمعامل لدوال أخرى، مثل دوال معالجة الأحداث أو دوال setTimeout و setInterval. setTimeout(function() { console.log("تم تنفيذ هذه الدالة بعد ثانية واحدة"); }, 1000); أيضًا مع دوال ذات ترتيب أعلى Higher-Order Functions مثل map و filter و reduce. const numbers = [1, 2, 3, 4, 5]; const doubledNumbers = numbers.map(function(number) { return number * 2; }); وللعلم توفر جافاسكريبت صيغة مختصرة لكتابة الدوال عديمة الاسم، وهي Arrow Function. const sum = (a, b) => a + b; فلا تحتاج إلى استخدام الكلمة المفتاحية function، ولا تحتاج إلى استخدام الأقواس {} أو الكلمة المفتاحية return إن كان جسم الدالة يتكون من سطر واحد فقط، وترث قيمة this من النطاق scope المحيط بها. وعلى الرغم من أنك تستطيع استخدام المتغير sum لاستدعاء الدالة أي من خلال اسم، لكن الدالة نفسها بدون اسم، لذا الأمر قد يحيرك قليلاً لفهمه. 1 اقتباس
0 عبدالباسط ابراهيم نشر 20 أغسطس 2024 أرسل تقرير نشر 20 أغسطس 2024 كما شرؤح لك مصطفى بشكل رائع أن الدوال عديمة الاسم أو Anonymous Functions هي دوال تُعرّف بدون اسم محدد. بدلاً من أن يكون للدالة اسم يمكن استدعاؤها به لاحقاً، يتم استخدامها في المكان الذي تم تعريفها فيه. ولكن سأحاول شرح متى نستخدم الAnonymous Functions بشكل عملي أولاً تُستخدم هذه الدوال غالبًا في الأماكن التي تحتاج فيها إلى تمرير دالة كمعامل لدالة أخرى. على سبيل المثال، في المصفوفات عند استخدام map أو filter أو forEach. const numbers = [1, 2, 3, 4]; const squaredNumbers = numbers.map(function(num) { return num * num; }); console.log(squaredNumbers); // Output: [1, 4, 9, 16] ثانياً عندما تحتاج إلى دالة تؤدي مهمة معينة ولا تحتاج إلى تكرارها في أماكن أخرى. setTimeout(function() { console.log("Time's up!"); }, 2000); // يتم تنفيذ الدالة بعد 2 ثانية و أحيانًا تحتاج إلى دالة داخل دالة أخرى لأداء مهمة محددة في نطاق صغير. function outerFunction() { return function() { console.log("Inner function"); }; } const inner = outerFunction(); inner(); // "Inner function" 1 اقتباس
0 محمود عوف2 نشر 20 أغسطس 2024 الكاتب أرسل تقرير نشر 20 أغسطس 2024 حسنا جزاكم الله خيرا علي الاجابة , ولكن لا يوجد فرق بين الدوال عديمة الاسم عندما استخدم الكلمة المفتاحية function والدوال السهمية arrow function صحيح؟ اقتباس
السؤال
محمود عوف2
السلام عليكم ورحمة الله وبركاته اريد شرح مفصل للدوال عديمة الاسم وما الفرق بينها وبين الدوال المسماة واين استخدم هذه واين استخدم هذه حيث ان في مواقع تحدياتا لبرمجة اغلب الدوال المستخدمة في حل التحديات تكون عديمة الاسم وشكرا مقدما علي الرد
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.