>  기사  >  웹 프론트엔드  >  switch 문_javascript 스킬 대신 command 객체를 사용하여 작성하는 예

switch 문_javascript 스킬 대신 command 객체를 사용하여 작성하는 예

WBOY
WBOY원래의
2016-05-16 16:12:101415검색

정말 좋은 프로그램에는 if..else가 없다고 말한 적이 있습니다. 물론 스위치는 if..else만큼 좋지 않습니다. JS 사양에서는 스위치 사용을 금지합니다.

명령 개체는 이 문제를 완벽하게 해결합니다.

해외 블로그 인용문:

JavaScript에는 종종 중괄호로 묶인 좋은 제어 흐름 문이 있습니다. 한 가지 예외가 있습니다: switch…case 문입니다. 스위치 ... 케이스의 이상한 점은 흐름 제어가 다음 케이스 문으로 전달되는 것을 방지하기 위해 각 케이스 끝에 break 키워드를 추가해야 한다는 것입니다. 순회(Traversal)는 여러 케이스를 실행하는 방법을 말하며, 예상되는 중단이 발생하지 않으면 제어가 자동으로 다음 케이스로 넘어갑니다. 그러나 세미콜론이나 중괄호와 마찬가지로 실수로 break를 쓰는 것을 잊어버릴 수도 있습니다. 이런 일이 발생하면 문 자체가 정확하기 때문에 나중에 문제를 해결하는 것이 더 어려울 것입니다. 따라서 Case ... Break를 쌍으로 작성하는 것이 좋습니다.
우리는 일반적으로 JavaScript에는 우아한 객체 리터럴과 최상위 함수가 있어 특정 메서드 쿼리를 매우 간단하게 만든다고 말합니다. 메소드 쿼리를 위해 생성된 개체는 작업 개체 또는 명령 개체라고 하며 강력하고 유용한 명령 패턴을 비롯한 많은 소프트웨어 디자인 패턴에 사용됩니다.

예:

코드 복사 코드는 다음과 같습니다.

// 전환 방법
함수 testSwitch(이름) {
스위치(이름) {
사례 '1':
                    '해킹'을 반환합니다.
                 휴식;
사례 '2':
                     '슬래시'를 반환합니다.
                 휴식;
사례 '3':
                    '실행'을 반환합니다.
                 휴식;
                 기본값:
                      false를 반환합니다.
                 휴식;
}
}
//명령 객체 사용
함수 testFn(이름) {
      var 이름 = {
              '1': 함수() {
                    '해킹'을 반환합니다.
            },
              '2': 함수() {
                     '슬래시'를 반환합니다.
            },
              '3': 함수() {
                    '실행'을 반환합니다.
            }
        };
If (이름 유형[이름] !== '함수') {
              false를 반환합니다.
}
          이름 반환[이름]();
}
// 테스트 결과
var result1 = testSwitch('1');
var result2 = testFn('2');
console.info(결과1, 결과2);
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.