في العديد من اللغات ذات المستوى العالي الموجهة للكائنات ، هناك حمولة زائدة للطرق. و JavaScript ليس لديه مفهوم الأسلوب الزائد. ولكن يمكننا استخدام معلمة الوسائط لتخفي الحمل الزائد للوظيفة
قبل المحاكاة ، دعونا نلقي نظرة على الكود:
نسخة الكود كما يلي:
// لا توجد وظيفة تعلن معلمات رسمية على السطح
وظيفة المرح () {
تنبيه ("رمز عينة") ؛
}
ممتع ("Xiao Ming" ، 100 ، صحيح) ؛ // كتبت ثلاث معلمات فعلية بنفسي
من خلال النتائج ، نرى أنه حتى لو لم نحدد المعلمات الرسمية عند إعلان وظيفة ما ، يمكننا كتابة المعلمات الفعلية عند استدعاء الطريقة. (في الواقع ، تتم قراءة المعلمات الرسمية عند الكتابة إلى المبرمجين لاتصال وظائف)
هل يمكننا الحصول على المعلمات الفعلية في الكود؟ الجواب نعم: يرجى الاطلاع على الرمز:
نسخة الكود كما يلي:
// لا توجد وظيفة تعلن معلمات رسمية على السطح
وظيفة المرح () {
تنبيه (وسيطات [0]) ؛ // احصل على قيمة المعلمة الفعلية الأولى.
التنبيه (الوسائط [1]) ؛ // احصل على قيمة المعلمة الفعلية الثانية.
تنبيه (وسيطات [2]) ؛ // احصل على قيمة المعلمة الفعلية الثالثة.
التنبيه (الوسيطات. الطول) ؛ // احصل على عدد المعلمات الفعلية.
تنبيه ("رمز عينة") ؛
}
ممتع ("Xiao Ming" ، 100 ، صحيح) ؛ // كتبت ثلاث معلمات فعلية بنفسي
من خلال الكود ، يمكننا أن نعرف أن الوسائط (الخصائص الداخلية) هي نفسها صفيف ، ووظائفها هي تخزين المعلمات الفعلية للطريقة.
مع نقاط المعرفة المذكورة أعلاه ، ستكون هناك أفكار لإعادة تحميل طريقة المحاكاة. يمكننا إصدار حكم بناءً على عدد المعلمات الفعلية ، وذلك لتنفيذ رموز منطقية مختلفة. الرمز البسيط هو كما يلي:
نسخة الكود كما يلي:
وظيفة المرح () {
if (الحجج. length == 0) {
تنبيه ("تنفيذ التعليمات البرمجية بدون معلمات فعلية") ؛
}
آخر إذا (الحجج. الطول == 1)
{
تنبيه ("قم بتنفيذ الكود الذي يمر في معلمة فعلية") ؛
}
آخر إذا (الحجج. الطول == 2)
{
تنبيه ("تنفيذ تمرير الرمز في معلمتين فعليتين") ؛
}
}
هزار()؛
متعة ("Xiao Ming") ؛
متعة ("Xiao Ming" ، "Xiao Hua") ؛