使用符號實現列舉
由於 ES6 引入了 Symbols ,它既是唯一且不可變的原始值,可以用作 Object
屬性的鍵,而不是使用字串作為列舉的可能值,因此可以使用符號。
// Simple symbol
const newSymbol = Symbol();
typeof newSymbol === 'symbol' // true
// A symbol with a label
const anotherSymbol = Symbol("label");
// Each symbol is unique
const yetAnotherSymbol = Symbol("label");
yetAnotherSymbol === anotherSymbol; // false
const Regnum_Animale = Symbol();
const Regnum_Vegetabile = Symbol();
const Regnum_Lapideum = Symbol();
function describe(kingdom) {
switch(kingdom) {
case Regnum_Animale:
return "Animal kingdom";
case Regnum_Vegetabile:
return "Vegetable kingdom";
case Regnum_Lapideum:
return "Mineral kingdom";
}
}
describe(Regnum_Vegetabile);
// Vegetable kingdom
ECMAScript 6 文章中的符號更詳細地介紹了這種新的原始型別。