معلمات وظيفة جافا سكريبت
لا يقوم JavaScript function
بإجراء أي فحص على قيم المعلمات (الوسائط).
معلمات الوظيفة والحجج
في وقت سابق من هذا البرنامج التعليمي ، تعلمت أن الوظائف يمكن أن تحتوي على معلمات :
function functionName(parameter1, parameter2, parameter3) {
// code to be executed
}
معلمات الوظيفة هي الأسماء المدرجة في تعريف الوظيفة.
وسيطات الوظيفة هي القيم الحقيقية التي تم تمريرها (واستلامها) للوظيفة.
قواعد المعلمة
لا تحدد تعريفات وظائف JavaScript أنواع البيانات للمعلمات.
لا تقوم وظائف JavaScript بفحص النوع على الوسائط التي تم تمريرها.
لا تتحقق دالات JavaScript من عدد الوسائط المتلقاة.
المعلمات الافتراضية
إذا تم استدعاء دالة ذات وسيطات مفقودة (أقل من المعلنة) ، يتم تعيين القيم المفقودة على
undefined
.
أحيانًا يكون هذا مقبولًا ، ولكن في بعض الأحيان يكون من الأفضل تعيين قيمة افتراضية للمعامل:
مثال
function myFunction(x, y) {
if (y === undefined) {
y = 2;
}
}
يسمح ECMAScript 2015 بقيم المعلمات الافتراضية في إعلان الوظيفة:
function myFunction(x, y = 2) {
// function code
}
كائن الحجج
تحتوي وظائف JavaScript على كائن مضمن يسمى الكائن arguments.
يحتوي كائن الوسيطة على مصفوفة من الوسائط المستخدمة عندما تم استدعاء الوظيفة (تم استدعاؤها).
بهذه الطريقة يمكنك ببساطة استخدام دالة للعثور (على سبيل المثال) على أعلى قيمة في قائمة الأرقام:
مثال
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
let max = -Infinity;
for (let i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
أو أنشئ دالة لتجميع كل قيم الإدخال:
مثال
x = sumAll(1, 123, 500, 115, 44, 88);
function sumAll() {
let sum = 0;
for (let i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
إذا تم استدعاء دالة بعدد كبير جدًا من الوسيطات (أكثر من المعلنة) ، فيمكن الوصول إلى هذه الوسائط باستخدام كائن الوسيطات .
يتم تمرير الحجج بالقيمة
المعلمات ، في استدعاء دالة ، هي وسيطات الدالة.
يتم تمرير وسيطات JavaScript بالقيمة : تتعرف الوظيفة فقط على القيم ، وليس مواقع الوسيطة.
إذا غيرت دالة قيمة الوسيطة ، فإنها لا تغير القيمة الأصلية للمعامل.
التغييرات التي تم إجراؤها على الوسيطات غير مرئية (تنعكس) خارج الوظيفة.
يتم تمرير الكائنات عن طريق المرجع
في JavaScript ، مراجع الكائنات هي قيم.
لهذا السبب ، ستتصرف الكائنات كما لو تم تمريرها من خلال المرجع:
إذا قامت دالة بتغيير خاصية كائن ، فإنها تغير القيمة الأصلية.
تظهر التغييرات التي يتم إجراؤها على خصائص الكائن (تنعكس) خارج الوظيفة.