누군가가 정말 좋은 프로그램에는 .. 엘스, 물론 스위치가 .. else처럼 좋지 않습니다. JS 사양에서 스위치 사용은 금지됩니다.
명령 개체는이 문제를 완벽하게 해결합니다.
외국 블로그 인용 :
JavaScript에는 우수한 제어 흐름 명세서가 있으며, 종종 곱슬 교정기에 싸여 있습니다. 그러나 예외가 있습니다 : Switch… case 문. 스위치에 대한 이상한 점… 케이스는 프로세스 제어가 다음 사례 문으로 이동하는 것을 방지하기 위해 각 케이스의 끝에 키워드 브레이크를 추가해야한다는 것입니다. 시간 여행은 여러 사례를 실행할 수있는 방법을 말합니다. 예상 중단이 발생하지 않으면 컨트롤이 다음 경우에 자동으로 전달됩니다. 그러나 세미콜론과 곱슬 괄호와 마찬가지로 부주의하게 휴식을 쓰는 것을 잊을 수 있습니다. 이런 일이 발생하면 나중에 오류 확인이 더 고통 스럽습니다. 그러므로 사건을 작성하는 것은 좋은 습관입니다.… 쌍을 끊습니다.
우리는 일반적으로 JavaScript에는 우아한 객체 리터럴과 최상위 기능이있어 특정 메소드 쿼리를 매우 간단하게 만듭니다. 메소드 쿼리를 위해 생성 된 객체는 활성 객체 또는 명령 개체라고하며, 강력하고 유용한 명령 패턴을 포함하여 많은 소프트웨어 설계 패턴에서 사용됩니다.
예:
코드 사본은 다음과 같습니다.
// 스위치 메소드
함수 testswitch (이름) {
스위치 (이름) {
사례 '1':
'해킹'을 반환합니다.
부서지다;
사례 '2':
'슬래시'를 반환합니다.
부서지다;
사례 '3':
반환 '런';
부서지다;
기본:
거짓을 반환합니다.
부서지다;
}
}
// 명령 객체를 사용합니다
함수 testfn (이름) {
var names = {
'1': function () {
'해킹'을 반환합니다.
},
'2': function () {
'슬래시'를 반환합니다.
},
'3': function () {
반환 '런';
}
};
if (typeof name [name]! == 'function') {
거짓을 반환합니다.
}
반환 이름 [이름] ();
}
// 테스트 결과
var result1 = testswitch ( '1');
var result2 = testfn ( '2');
console.info (result1, result2);