2014-12-14 2 views
2

아래의 스 니펫 에서처럼 if 문을 피하는 방법은 여러 if를 검사하여 전체 코드가 상당히 엉망이 될 수 있기 때문입니다. 여기에 효과적으로 적용될 수있는 다형성 메커니즘이 있습니까? 또한, JavaScript가있는 경우 다형성을 이해하는 링크를 참조하십시오.Javascript - 아래 제공된 스 니펫과 같은 명령문을 피하는 방법은 무엇입니까?

function car(type) { 
    this.type = type; 
    this.shout = function() { 
    if(this.type == "automatic") 
     alert("automatic type"); 
    else if(this.type == "manual") 
     alert("manual type"); 
    }; 
} 

var audi = new car("manual"); 
audi.shout(); 
+0

또한 factory를 구현하여 다른 유형을 생성 할 수도 있습니다. – dfsq

답변

1

연관 배열에 매핑을 정의합니다

var carTypes = {}; 
carTypes["automatic"] = "automatic type"; 
carTypes["manual"] = "manual type"; 

당신이 다음 조회 수 :

일부 유효성 검사가 배열의 키가 제한되어 있는지 확인해야합니다

this.shout = function() { 
    alert(carTypes[this.type]); 
    }; 
.

+0

코드가 다형성 (polymorphic) 동작을 유지합니까? 그냥 질문입니다. –

+0

아니요, 이것에 대한 OO 다형성은 없습니다. 제목 질문 '아래의 코드 조각과 같은 문을 피하는 방법은 무엇입니까?'답변 : – StuartLC

+0

@StuartLS - Ok, 위에서 다형성을 적용 할 수있는 방법이 있습니까? 단편? –

관련 문제