0
我有一个情况,我在JavaScript中定义了一个具有一些默认参数的函数。有编写相同的简单的代码的多种方式,但我意识到,这似乎是在JavaScript中合法使用的switch
隐含落空行为:隐式遗漏:代码气味还是优雅的设计?
//a simplification of the pattern
function foo(bar, baz, fizz, buzz) {
switch (arguments.length) {
case 0:
bar = 'first';
case 1:
baz = 'second';
case 2:
fizz = 'third';
case 3:
buzz = 'fourth';
}
}
我认为该代码是在它的简单优雅,但我担心自己太聪明了。
这是一个优雅的简化或代码气味?
根据道格拉斯克罗克福德这是一种气味。 –
在任何情况下,您最好添加一条评论,意思是fallthrough是打算的,否则每个人都会认为它是一个bug,并且您忘记了“break”。 – delnan
@delnan,我同意,这就是为什么我采用'// continue;'来代替'break;'。 – zzzzBov