JS模擬實現枚舉


前言

在當前的JavaScript中,並沒有枚舉這個概念,在某些場景中使用枚舉更能保證數據的正確性,減少數據校驗過程,下面就介紹一下JavaScript如何模擬實現枚舉效果。

 

枚舉主要特點

  1. 枚舉值不能重復
  2. 不能被修改

資源搜索網站大全https://55wd.com 廣州品牌設計公司http://www.maiqicn.com

實現

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 = {})); 

這個時候days對象基本實現了枚舉效果,可以通過枚舉值或索引去訪問days對象,但枚舉有個重要特別是不能被修改,這個時候days是可以隨意修改的;可以通過Object.freeze函數讓對象不改修改,重新導出一個不可以修改的對象,完整代碼如下:

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 = {})); //導出可枚舉對象 export EnumWeek = Object.freeze(days)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM