قال أحدهم ذات مرة إن برنامجًا جيدًا حقًا لا يحتوي على IF..ELSE ، بالطبع مفتاح ليس جيدًا كما لو .. ELSE. يحظر استخدام التبديل في مواصفات JS.
كائن الأوامر يحل هذه المشكلة تمامًا.
اقتبس مدونة أجنبية:
لدى JavaScript عبارات تدفق التحكم الجيدة ، والتي غالبًا ما يتم لفها في أقواس مجعد. ولكن هناك استثناء: تبديل ... بيان الحالة. الشيء الغريب في التبديل ... الحالة هو أنه يتعين عليك إضافة كسر الكلمات الرئيسية في نهاية كل حالة لمنع التحكم في العملية من السفر إلى بيان الحالة التالية. يشير السفر عبر الزمن إلى طريقة السماح بتنفيذ حالات متعددة. عند عدم مواجهة الاستراحة المتوقعة ، سيتم تسليم عنصر التحكم تلقائيًا إلى الحالة التالية. ومع ذلك ، تمامًا مثل Semicolons و Curly Curly ، يمكنك أن تنسى عن غير قصد كتابة فترات راحة. عندما يحدث هذا ، تكون فحوصات الأخطاء اللاحقة أكثر إيلامًا لأن العبارة نفسها صحيحة. لذلك ، من العادة جيدة كتابة حالة ... كسر الأزواج.
عادةً ما نقول أن JavaScript لديها حرفية كائنات أنيقة ووظائف المستوى الأعلى ، والتي تجعل استعلامات طريقة محددة بسيطة للغاية. الكائن الذي تم إنشاؤه لاستعلامات الطريقة ، نسميه كائنًا نشطًا أو كائنًا أمرًا ، يتم استخدامه في العديد من أنماط تصميم البرامج ، بما في ذلك أنماط الأوامر القوية والمفيدة.
مثال:
نسخة الكود كما يلي:
// طريقة التبديل
وظيفة testswitch (الاسم) {
التبديل (الاسم) {
القضية "1":
إرجاع "الاختراق" ؛
استراحة؛
القضية "2":
إرجاع "SLASH" ؛
استراحة؛
القضية "3":
إرجاع 'run' ؛
استراحة؛
تقصير:
العودة كاذبة
استراحة؛
}
}
// استخدم كائن الأمر
وظيفة testfn (الاسم) {
أسماء var = {
'1': function () {
إرجاع "الاختراق" ؛
} ،
'2': function () {
إرجاع "SLASH" ؛
} ،
'3': function () {
إرجاع 'run' ؛
}
} ؛
if (typeof names [name]! == 'function') {
العودة كاذبة
}
أسماء الإرجاع [name] () ؛
}
// نتائج الاختبار
var result1 = testswitch ('1') ؛
var result2 = testfn ('2') ؛
console.info (النتيجة 1 ، النتيجة 2) ؛