怎樣用JS模擬實(shí)現(xiàn)枚舉
在當(dāng)前的JavaScript中,并沒(méi)有枚舉這個(gè)概念,在某些場(chǎng)景中使用枚舉更能保證數(shù)據(jù)的正確性,減少數(shù)據(jù)校驗(yàn)過(guò)程,下面就介紹一下JavaScript如何模擬實(shí)現(xiàn)枚舉效果。
枚舉主要特點(diǎn) 枚舉值不能重復(fù) 不能被修改實(shí)現(xiàn)let days;(function (days) { days[days['Sunday'] = 0] = 'Sunday'; days[days['Monday'] = 1] = 'Monday'; days[days['Tuesday'] = 2] = 'Tuesday'; days[days['Wednesday'] = 3] = 'Wednesday'; days[days['Thursday'] = 4] = 'Thursday'; days[days['Friday'] = 5] = 'Friday'; days[days['Saturday'] = 6] = 'Saturday';})(days || (days = {}));
這個(gè)時(shí)候days對(duì)象基本實(shí)現(xiàn)了枚舉效果,可以通過(guò)枚舉值或索引去訪問(wèn)days對(duì)象,但枚舉有個(gè)重要特別是不能被修改,這個(gè)時(shí)候days是可以隨意修改的;可以通過(guò)Object.freeze函數(shù)讓對(duì)象不改修改,重新導(dǎo)出一個(gè)不可以修改的對(duì)象,完整代碼如下:
let days;(function (days) { days[days['Monday'] = 1] = 'Monday'; days[days['Tuesday'] = 2] = 'Tuesday'; days[days['Wednesday'] = 3] = 'Wednesday'; days[days['Thursday'] = 4] = 'Thursday'; days[days['Friday'] = 5] = 'Friday'; days[days['Saturday'] = 6] = 'Saturday'; days[days['Sunday'] = 0] = 'Sunday';})(days || (days = {}));//導(dǎo)出可枚舉對(duì)象export EnumWeek = Object.freeze(days)
以上就是怎樣用JS模擬實(shí)現(xiàn)枚舉的詳細(xì)內(nèi)容,更多關(guān)于JS的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. 淺談XML Schema中的elementFormDefault屬性2. 父div高度不能自適應(yīng)子div高度的解決方案3. 前端從瀏覽器的渲染到性能優(yōu)化4. ASP.NET Core 5.0中的Host.CreateDefaultBuilder執(zhí)行過(guò)程解析5. 利用XMLSerializer將對(duì)象串行化到XML6. 淺談?dòng)蓀osition屬性引申的css進(jìn)階討論7. ASP中SELECT下拉菜單同時(shí)獲取VALUE和TEXT值的實(shí)現(xiàn)代碼8. 選擇模式 - XSL教程 - 29. 阿里前端開(kāi)發(fā)中的規(guī)范要求10. 三個(gè)不常見(jiàn)的 HTML5 實(shí)用新特性簡(jiǎn)介
