في المقالة السابقة ، ناقشنا المعلمات الافتراضية في JavaScript. في هذه المقالة ، سنناقش كائن معلمة الوسائط في JavaScript.
كيف نقوم بمعالجة مختلفة بناءً على المعلمات التي تم تمريرها في وظيفة في المثال التالي؟
نسخة الكود كما يلي:
وظيفة addall () {
// ماذا نفعل هنا؟
}
// يجب أن تعود 6
addall (1 ، 2 ، 3) ؛
// يجب أن تعود 10
addall (1 ، 2 ، 3 ، 4) ؛
لحسن الحظ ، لدى JavaScript كائن وسيطات يمكنه التعامل مع المواقف المذكورة أعلاه. كائن الوسائط هو كائن صفيف. إذا كنت تريد معرفة تفاصيل كائن الوسائط ، يرجى النقر هنا. نستخدم كائن الوسائط لتغيير المثال أعلاه:
نسخة الكود كما يلي:
وظيفة addall () {
var sum = 0 ؛
لـ (var i = 0 ؛ i <enduments.length ؛ i ++) {
sum += الحجج [i] ؛
}
إرجاع مجموع
}
// إرجاع 6
addall (1 ، 2 ، 3) ؛
// إرجاع 10
addall (1 ، 2 ، 3 ، 4) ؛
لقد قلنا أعلاه أن كائن الحجج هو كائن صفيف من الفصل. دعنا نختبره أدناه:
نسخة الكود كما يلي:
وظيفة getName () {
console.log (array.isarray (الحجج)) ؛
}
// سوف يخرج خطأ
getName ("بنيامين") ؛
يمكن رؤية نتائج الاختبار أعلاه:
إنه ليس كائن صفيف ، فما الفرق بينه وبين كائن الصفيف؟ الرجاء النقر هنا للحصول على التفاصيل.
إن تنفيذ المثال التالي سوف يرمي خطأ:
نسخة الكود كما يلي:
وظيفة sortargs () {
// uniticed typeerror: غير محدد ليس وظيفة
فرز = الحجج. sort ()
عودة مرتبة.
}
sortargs () ؛
يمكننا تحويل كائن صفيف إلى كائن صفيف مثل ما يلي:
نسخة الكود كما يلي:
وظيفة sortargs () {
// تحويل الوسيطات الكائن إلى صفيف حقيقي
var args = [] .slice.call (الوسائط) ؛
// الآن سوف يعمل هذا!
فرز = args.sort ()
عودة مرتبة.
}
// سوف يخرج [1 ، 2 ، 3]
console.log (sortargs (1،3،2)) ؛
إذا شعرت أن هذه المقالة مفيدة لك ، آمل أن أنقلها إلى المزيد من الأشخاص المحتاجين. إذا كان هناك أي مقالة غير لائقة ، فيرجى ترك رسالة لتصحيحها.