يمكن أن يحدد تعريف وظيفة JS اسم المعلمة الرسمية. أكثر أو أقل ، نعتقد أن JS يمكن على الأقل دعم طريقة التحميل الزائد مع معلمات مختلفة. لسوء الحظ ، هذا مجرد وهم. يتم تمرير جميع المعلمات من JS في الحجج. هذه المعلمة تشبه صفيف. عندما يتم استدعاء وظيفة ، يتم تخزين جميع المعلمات الفعلية في بنية البيانات هذه. المعلمات الرسمية المحددة عندما نحدد الوظيفة تحدد بالفعل طريقة وصول سريعة للبيانات في بنية البيانات هذه. بمعنى آخر ، تدعم جميع وظائف JS معلمات Infinite ، ونوع البيانات هو نوع ضعيف ، لذلك لا يوجد فرق في طريقة بين وظائف JS باستثناء الأسماء؟
هناك دائمًا طرق ، يمكننا استخدام وسيطات كائنات خاصة في JavaScript لمحاكاة التحميل الزائد للوظائف. استخدمه لتحديد رقم أو نوع المعلمات الواردة لتمييز التحميل الزائد.
1. إعادة التحميل وفقًا لعدد المعلمات
JS لتحديد عدد المعلمات الواردة يمكن الحكم عليها من خلال سمة الطول.
نسخة الكود كما يلي:
<script type = "text/javaScript">
وظيفة إضافة () {
if (الحجج. length == 1) {
تنبيه (الحجج [0] + 10) ؛
}
آخر إذا (الحجج. الطول == 2) {
التنبيه (الحجج [0] + وسيطات [1]) ؛
}
}
// استدعاء وظيفة
إضافة (10) ؛
إضافة (10 ، 20) ؛
</script>
2. إعادة التحميل وفقًا لنوع المعلمة
هناك 3 طرق للحكم على أنواع المتغيرات:
1. استخدم عبارة typeof للحكم على النوع المتغير ، ويعيد عبارة typeof السلسلة المقابلة للنوع.
2. استخدم بيان مثيل EOF للحكم على النوع المتغير ، ويعيد بيان مثيل True/False.
3. استخدم سمة المنشئ لتحديد النوع المتغير ، والذي يقوم بإرجاع مرجع المنشئ المستخدم لإنشاء المتغير.
جدول المقارنة: يمكن ملاحظة أن استخدام TypeOF لا يمكن أن يحدد بدقة النوع المحدد ، لذلك نستخدم المنشئ لإصدار الأحكام.
TypeofStringNumberObjectFunctionBooleanObjectObject
ConstructorStringNumberObjectFunctionBooleanArrayuser DEFINE
نسخة الكود كما يلي:
<script type = "text/javaScript">
وظيفة إضافة ()
{
if (ediuments.length == 0) return 0 ؛
var sum = 0 ؛
لـ (var i = 0 ؛ i <enduments.length ؛ i ++) {
if (الحجج [i] .constructor == number) {
// أو تغيير إلى: if (الوسيطات [i] رقم مثيل)
// أو تغيير إلى: if (typeof (الوسائط [i]) == "الرقم")
sum += الحجج [i] ؛
}
}
إرجاع مجموع
}
// استدعاء وظيفة
تنبيه (إضافة (10)) ؛
تنبيه (إضافة (10،20)) ؛
</script>
هل فهمت طريقة تحميل وظائف JavaScript الزائد؟ إذا كان لديك أي أسئلة ، يرجى ترك رسالة