策略
在許多情況下,可以在 Javascript 中使用策略模式來替換 switch 語句。當條件數量動態或非常大時,它尤其有用。它允許每個條件的程式碼獨立且可單獨測試。
策略物件是一個簡單的具有多個功能的物件,代表每個獨立的條件。例:
const AnimalSays = {
dog () {
return 'woof';
},
cat () {
return 'meow';
},
lion () {
return 'roar';
},
// ... other animals
default () {
return 'moo';
}
};
上述物件可以使用如下:
function makeAnimalSpeak (animal) {
// Match the animal by type
const speak = AnimalSays[animal] || AnimalSays.default;
console.log(animal + ' says ' + speak());
}
結果:
makeAnimalSpeak('dog') // => 'dog says woof'
makeAnimalSpeak('cat') // => 'cat says meow'
makeAnimalSpeak('lion') // => 'lion says roar'
makeAnimalSpeak('snake') // => 'snake says moo'
在最後一種情況下,我們的預設函式處理任何丟失的動物。