mik*_*his 2 javascript coffeescript
题
更多是出于好奇,但我想知道如何将if语句重构为更清晰/更不易碎的东西.从我读过的,多态可能有用吗?
在示例中,我只想返回第一辆车,如果color:'red'是真的话.
CoffeeScript的
example: () ->
cars = [{color:'red', reg:'111'},{color:'blue', reg:'666'}]
if cars[0].color is 'red'
then cars[0]
else cars[1]
Run Code Online (Sandbox Code Playgroud)
使用Javascript
example: function() {
var cars = [{color:'red',reg:'111'},{color:'blue',reg:'666'}];
if (cars[0].color === 'red') {
return cars[0];
} else {
return cars[1];
}
}
Run Code Online (Sandbox Code Playgroud)
我理解这个问题可能由于模糊性而被关闭或移动
你可以使用三元运算符,它的语法是 condition ? result1 : result2;
return cars[0].color === 'red' ? colors[0] : colors[1]
Run Code Online (Sandbox Code Playgroud)
?:运算符就是这样,“更干净”的if-else
http://msdn.microsoft.com/en-us/library/ty67wk28.aspx
classify = (input < 0) ? "negative" : "positive";
Run Code Online (Sandbox Code Playgroud)
对于较大的组合,还有switch语句:
http://www.w3schools.com/js/js_switch.asp
switch(n)
{
case 1:
execute code block 1
break;
case 2:
execute code block 2
break;
default:
code to be executed if n is different from case 1 and 2
}
Run Code Online (Sandbox Code Playgroud)
多态是一个抽象的概念,而不是一种编写语句的方法。这是创建类型至少为模棱两可的方法/函数/类/等的实践。因此,如果输入相同的方法(例如,为参数1输入一个整数),则可能会返回结果,就像您将数组输入相同的参数一样。