توفر JavaScript المرونة في تمرير الوسائط إلى الوظائف، بما في ذلك القدرة على إرسال عدد متغير من الوسائط من مصفوفة.
مثل Python، تحتوي JavaScript على كائن وسائط خاص يمثل جميع الوسائط التي تم تمريرها إلى دالة. يحتوي هذا الكائن على كل وسيطة كخاصية قابلة للفهرسة. على سبيل المثال:
function func() { console.log(arguments.length); for (arg in arguments) console.log(arg); } func('a', 'b', 'c', 'd'); // prints 4 and 'a', 'b', 'c', 'd'
ومع ذلك، لن يؤدي تمرير مصفوفة مباشرة إلى دالة كوسيطات تحقيق النتيجة المرجوة. بدلاً من ذلك، سيتم التعامل مع الصفيف نفسه كوسيطة واحدة. لتمرير مصفوفة كوسيطات فردية، يمكنك استخدام طريقة application():
var arr = ['a', 'b', 'c']; function func() { console.log(this); // 'test' console.log(arguments.length); // 3 for (var i = 0; iسيؤدي هذا إلى طباعة 'test' و3 و'a' و'b' و'c'.
صيغة الانتشار (ES6)
منذ ES6، قدمت جافا سكريبت صيغة الانتشار (...)، والتي توفر طريقة أكثر إيجازًا لتحقيق نفس الشيء النتيجة:
func(...arr);سيؤدي هذا إلى توسيع عناصر arr إلى وسيطات فردية تم تمريرها إلى الوظيفة.
المعلمات المسماة باستخدام بناء الجملة المنتشر (ES6) )
يمكنك أيضًا دمج المعلمات المسماة مع صيغة الانتشار لتحديد أنه يجب التعامل مع بعض الوسائط كمصفوفة:
function func(first, second, ...theRest) { //... }الاستنتاج
تسمح JavaScript بتمرير عدد متغير من الوسائط إلى الوظائف من خلال كائن الوسائط أو، في ES6 والإصدارات الأحدث، باستخدام بناء جملة الانتشار. تتيح هذه المرونة مجموعة متنوعة من حالات الاستخدام، مثل إنشاء وظائف عامة يمكنها التعامل مع عدد عشوائي من المدخلات.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3