نسخة الكود كما يلي:
<script language = "javaScript">
// قيمة المعلمة الأولى.
اختبار الوظيفة (A ، B ، C ، D) {
تنبيه (الحجج [0]) ؛
}
// الحجج [0] هو في الواقع. وبالمثل ، فإن الحجج [1] هي B ، C ، D بدورها
</script>
نسخة الكود كما يلي:
<script language = "javaScript">
{
الدالة function_name (exp1 ، exp2 ، exp3 ، exp4)
{
var umber = "" ؛
umber = الحجج. الطول ؛
تنبيه (umber) ؛
}
function_name ('a' ، 'b' ، 'c' ، 'd') ؛ يمكن استدعاء جميع
// function_name ("A" ، "B" ، "C" ، "D") ؛ يمكن أن يسمى
}
</script>
1. في JavaScript ، كائن الوسائط هو كائن خاص نسبيًا ، وهو في الواقع خاصية مدمجة للوظيفة الحالية. الحجج تشبه إلى حد كبير الصفيف ، ولكنها ليست في الواقع مثال صفيف. يمكن التحقق منه من خلال الكود التالي (بالطبع ، في وظيفة Funcarg ، ليس من الضروري كتابة الحجج على أنها funcarg.arguments ، فقط اكتب الحجج).
نسخة الكود كما يلي:
Array.Prototype.testarg = "test" ؛
وظيفة funcarg () {
ALERT (funcarg.arguments.testarg) ؛
تنبيه (funcarg.arguments [0]) ؛
}
تنبيه (صفيف جديد (). testarg) ؛ // النتيجة: "اختبار"
Funcarg (10) ؛ // النتيجة: "غير محدد" "10"
2. يتم تحديد طول كائن الوسائط من خلال عدد المعلمات الحقيقية بدلاً من عدد المعلمات الرسمية. المعلمات الرسمية هي متغيرات تعيد فتح مساحة مساحة الذاكرة داخل الوظيفة ، لكنها لا تتداخل مع مساحة ذاكرة كائن الوسائط. عند وجود كلتا الوسيطتين والقيم ، تتم مزامنة القيم ، ولكن بالنسبة لأحدها ، لا يتم مزامنة القيم لهذا الموقف الذي لا قيمة له. يمكن التحقق من الكود التالي.
نسخة الكود كما يلي:
وظيفة F (A ، B ، C) {
التنبيه (الحجج. الطول) ؛ // النتيجة: "2"
أ = 100 ؛
تنبيه (الحجج [0]) ؛ // النتيجة: "100"
الحجج [0] = "qqyumidi" ؛
تنبيه (أ) ؛ // النتيجة: "qqyumidi"
تنبيه (ج) ؛ // النتيجة: "غير محدد"
ج = 2012 ؛
تنبيه (الحجج [2]) ؛ // النتيجة: "غير محدد"
}
F (1 ، 2) ؛
3. من الإعلان وخصائص استدعاء الوظائف في JavaScript ، يمكن ملاحظة أنه لا يمكن تحميل الوظائف في JavaScript.
استنادًا إلى أساس التحميل الزائد بلغات أخرى: "قيمة إرجاع الوظيفة مختلفة أو أن عدد المعلمات الرسمية مختلفة" ، يمكننا رسم الاستنتاج أعلاه:
أولاً: لا يوجد من هذا القبيل أن إعلان وظائف JavaScript يعيد نوع القيمة ؛
ثانياً: عدد المعلمات الرسمية في JavaScript هو فقط لتسهيل التشغيل المتغير في الوظائف. في الواقع ، تم تخزين المعلمات الفعلية في كائن الوسائط.
بالإضافة إلى ذلك ، فإن الفهم العميق لسبب لا يمكن تحميل الوظائف في JavaScript من وظيفة JavaScript نفسها: في JavaScript ، تكون الوظائف في الواقع كائنات ، واسم الوظيفة مرجعًا إلى الوظيفة ، أو اسم الوظيفة نفسه متغير. بالنسبة لإعلان الوظيفة وتعبير الوظيفة الموضحة أدناه ، فإن ما سبق هو نفسه في الواقع (دون النظر في الفرق بين إعلان الوظيفة والتعبير عن الوظيفة) ، من المفيد للغاية بالنسبة لنا أن نفهم المميزة التي لا يمكن أن يتم تحميل الوظائف في JavaScript.
نسخة الكود كما يلي:
وظيفة f (a) {
إرجاع A + 10 ؛
}
وظيفة f (a) {
إرجاع A - 10 ؛
}
// دون النظر في الفرق بين إعلان الوظيفة والتعبير عن الوظيفة ، فإنه يعادل ما يلي
var f = function (a) {
إرجاع A + 10 ؛
}
var f = function (a) {
إرجاع A - 10 ؛
}
4. هناك خاصية مفيدة للغاية في كائن الوسائط: كالي. encomes.callee إرجاع مرجع الوظيفة الحالية حيث يوجد كائن الوسيطة هذا. عند استخدام المكالمات المتكررة للوظيفة ، استخدم الوسائط. callee بدلاً من اسم الوظيفة نفسه.
على النحو التالي:
نسخة الكود كما يلي:
عدد الوظائف (أ) {
if (a == 1) {
العودة 1 ؛
}
إرجاع A + Desuments.callee (-A) ؛
}
var mm = count (10) ؛
تنبيه (مم) ؛