Javascript - 如何避免if语句如下面给出的片段?

时间:2014-12-14 06:49:17

标签: javascript polymorphism

如何避免if语句,如下面的代码片段,因为可能有多个ifs被检查,整个代码看起来很混乱。有没有可以在这里有效采用的多态机制?另外,如果你有一个链接,请参考链接以了解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();

1 个答案:

答案 0 :(得分:1)

在关联数组中定义映射:

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

然后您可以查找:

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

需要进行一些验证以确保数组的键受到约束。