يمكن أن يحدد تعريف وظيفة JS اسم المعلمة الرسمية. تشبه هذه المعلمة الصفيف طريقة. بمعنى آخر ، تدعم جميع وظائف JS المعلمات اللانهائية ، ونوع البيانات نوعًا ضعيفًا ، لذلك لا يوجد فرق في الطريقة بين وظائف 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 لا يمكن أن يحدد بدقة النوع المحدد ، لذلك نستخدم المنشئ لإصدار الأحكام.
نوع | خيط | رقم | هدف | وظيفة | منطقية | هدف | هدف |
مُنشئ | خيط | رقم | هدف | وظيفة | منطقية | صفيف | تعريف المستخدم |
نسخة الكود كما يلي:
<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>