如何避免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();
答案 0 :(得分:1)
在关联数组中定义映射:
var carTypes = {};
carTypes["automatic"] = "automatic type";
carTypes["manual"] = "manual type";
然后您可以查找:
this.shout = function() {
alert(carTypes[this.type]);
};
需要进行一些验证以确保数组的键受到约束。