أعتقد أن كل طالب جديد في JavaScript سيكون مرتبكًا للغاية بشأن مرور المعلمة الوظيفية. والسبب هو أن بناء الجملة غريب للغاية. يمكنك تحديد وظيفة.
على سبيل المثال
اختبار الوظيفة (الاسم ، msg) {return 'hello' + name + msg ؛}فكيف تسميها عند الاتصال؟ يمكنك اختبار ('eric') أو الاختبار ('eric' أو 'مرحبًا بك في JavaScript) أو حتى تمريره أكبر عدد من المعلمات التي تريدها ، وأنواع التعسفية. يا له من شيء رائع. قد يفكر الطلاب الذين درسوا C ++/C# أو Java في التحميل الزائد للوظيفة. ومع ذلك ، فإن ما أريد أن أخبرك به هو أنه لا يوجد حمولة زائدة في JavaScript. إذا قمت بتحديد وظيفتين بنفس الاسم ، فسيتم كتابة الوظيفة المحددة أولاً من خلال التعريف اللاحق ، مما يعني أنه لا يمكن الحصول على النتيجة التي تريدها إلا من الوظيفة المحددة اللاحقة.
حسنًا ، دعنا نعود إلى هذه النقطة. لماذا يمكن أن تمر وظيفة JavaScript بشكل عرضي؟ دعونا أولاً نلقي نظرة على المكان الذي يتم فيه تخزين جميع المعلمات التي تم تمريرها. في الواقع ، في تنفيذها الداخلي ، توجد جميع المعلمات التي تم تمريرها في صفيف. تستقبل الوظيفة دائمًا هذه الصفيف ، ولا تهتم بالمعلمات التي تحتوي عليها الصفيف. الآن من السهل الفهم. لقد حددنا وظيفة. عند الاتصال ، يمكن تمرير المعلمات حسب الرغبة. سيتم إضافته إلى الصفيف بقدر ما تمر. إذا لم تقم بتمريره ، فستكون جميع المعلمات الرسمية "غير محددة". لن تكون هناك أخطاء في بناء الجملة ، ولكن من الصعب القول من حيث الدلالات.
حسنًا ، هذه هي المرة الأولى التي أكتب فيها مدونة. أنا لست موهوبًا ، لذلك أنا أضحك عليك. آمل أن يساعدك منشور المدونة هذا قليلاً. . . .
أحبك يا رفاق!