يحتاج:
متعة A() { asyn(parm1, parm2, onsuccess(){ }) ;}
متعة B() {asyn(paem1, parm2, onsuccess(){}) ;}
تتطلب الوظيفة B التنفيذ بعد الوظيفة A
التنفيذ غير المتزامن
إذا تم استخدامه مباشرة
أ()؛
ب()؛
لا يمكن استيفاء شروط التنفيذ.
خذ بعين الاعتبار تمرير B كدالة رد اتصال إلى A، ثم يقوم A بتنفيذ الدالة B في عملية النجاح.
أ(ب);
يمكن تحقيق المتطلبات الوظيفية.
Js هو خيط واحد.
1. عند استدعاء دالة، إذا كان هناك معلمات أكثر من عدد التعريفات، فسيتم تجاهل المعلمات الإضافية إذا كان عدد المعلمات أقل من عدد المعلمات، فسيتم تعيين المعلمات المفقودة تلقائيًا على القيمة غير المحددة.
2. إذا تم الإعلان عن تعريف الوظيفة باستخدام عبارة دالة، فلا يمكن أن يظهر في حلقة أو عبارة شرطية، ولكن إذا تم الإعلان عن تعريف الوظيفة بطريقة حرفية للدالة، فيمكن أن يظهر في أي تعبير js.
3. كائن الحجج
كائن الوسيطات للدالة يشبه المصفوفة، التي تخزن المعلمات الفعلية عند استدعاء الوظيفة. يمكنك استخدام الوسيطات[0]، والحجج[1]، والحجج[2]... للإشارة إلى هذه المعلمات، حتى لو كانت هذه. المعلمات عند تحديد الوظيفة رقم. لكن الوسائط ليست كائنات مصفوفة حقيقية.
وظيفة أ (س، ص) {
الوسيطات[0] // يشير إلى المعلمة الأولى x
الوسيطات[1] // تشير إلى المعلمة الأولى y
وسيطات[2] // يشير إلى المعلمة الثالثة، بشرط أن يتم تمرير ثلاث معلمات عند استدعاء الوظيفة
…
الوسيطات. الطول // يشير إلى العدد الفعلي للمعلمات التي تم تمريرها
الوسيطات.callee(x,y) // استدعاء نفسها}
يحتوي كائن الوسيطات على سمة الطول، والتي تمثل عدد المعلمات التي تم تمريرها فعليًا عند استدعاء الدالة.
يحتوي كائن الوسيطات أيضًا على سمة مستدعى، والتي تُستخدم للإشارة إلى الوظيفة التي يتم تنفيذها حاليًا، وهذا مفيد بشكل خاص في الوظائف المجهولة.
4. سمة الطول للوظيفة (نعم، تحتوي الوظيفة أيضًا على سمة الطول)
على عكس الوسيطات.الطول، تمثل سمة الطول للدالة عدد المعلمات الرسمية عند تعريف الوظيفة، وليس العدد الفعلي للمعلمات عند استدعاء الوظيفة. يمكنك استخدام الوسيطات.callee.length لاستدعاء خاصية الطول الخاصة بالدالة.