Javascript - 如何避免像下面给出的代码片段这样的 if 语句?

标签 javascript polymorphism

如何避免下面代码段中的 if 语句,因为可能有多个 if 需要检查,整个代码看起来会很困惑。是否有可以在这里有效采用的多态机制?此外,请引用链接以了解 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();

最佳答案

定义关联数组中的映射:

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

然后你可以查找:

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

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

关于Javascript - 如何避免像下面给出的代码片段这样的 if 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27467029/

相关文章:

javascript - 为网络音频创建音量控制

objective-c - Objective C 中的多态性和继承

java - 简单 Java 多态性的 C++ 等价物

c++ - 如果我只有基类指针,如何使用派生类?

javascript - ReactJs 中的嵌套 URL 路由

javascript - 如何在fabric.js中创建艺术字文字效果?

java - 如何在仅在单个数组中的 java 中打印多态对象

java - 替换条件 If 语句

javascript - v-model 的这个 ['key' ] 和 $data ['key' ] 之间有什么区别?

javascript - 即使我删除了其他 bootstrap.min.js,模态框仍然消失