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