摘要:枚舉結(jié)構(gòu)通常我們定義的枚舉值使用如果需要包含其他屬性,我們可以添加額外的對象使用封裝下面我們進(jìn)行封裝枚舉類栗子步驟步驟通過獲取當(dāng)前列的值步驟初始化缺少必要的或根據(jù)獲取對象值狀態(tài)值獲取枚舉數(shù)組使用方法步驟步驟步驟
枚舉結(jié)構(gòu)
通常我們定義的枚舉值:
var SizeEnum = { SMALL: 1, MEDIUM: 2, LARGE: 3, };
使用var mySize = SizeEnum.SMALL;
如果需要包含其他屬性,我們可以添加額外的對象
var SizeEnum = { SMALL: 1, MEDIUM: 2, LARGE: 3, properties: { 1: {name: "small", value: 1, code: "S"}, 2: {name: "medium", value: 2, code: "M"}, 3: {name: "large", value: 3, code: "L"} } };
使用:
var mySize = SizeEnum.MEDIUM; var myCode = SizeEnum.properties[mySize].code; // myCode == "M"封裝
下面我們進(jìn)行封裝:
/** * 枚舉類 * * @author harris.xc * @param props [{key: number|string, value: number|string, ...other}] * 栗子: * const StepEnum = new Enum([ * { key: "STEP1", name: "步驟1", value: 1 }, * { key: "SETP2", name: "步驟2", value: 2 }, * ]); * * @class Enum * * @method get(value) 通過value獲取當(dāng)前列的值 * return { key: "SETP2", name: "步驟2", value: 2 } * * @returns {key1: number|string, key2: number|string} * { * CREATE: 1, * APPROVED: 2, * } */ export default class Enum { /** * 初始化 * @param {Array} props [] */ constructor(props = []) { this.__props = {}; if (props.length) { props.forEach((element) => { if (element.key && element.value) { this[element.key] = element.value; this.__props[element.value] = element; } else { console.error("Enum缺少必要的key或value"); } }); } } /** * 根據(jù)value獲取對象值 * @param {string|number} value 狀態(tài)值 */ get(value) { return this.__props[value]; } /** * 獲取枚舉數(shù)組 */ getArray() { const arr = []; for (const key in this.__props) { if (Object.prototype.hasOwnProperty.call(this.__props, key)) { arr.push(this.__props[key]); } } return arr; } }
使用方法:
let SizeEnum = new Enum([ { key: "STEP1", name: "步驟1", value: 1 }, { key: "SETP2", name: "步驟2", value: 2 } ]); SizeEnum.STEP1; // 1 SizeEnum.get(SizeEnum.STEP1); // { key: "STEP1", name: "步驟1", value: 1 }
[https://stijndewitt.com/2014/...](
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/99417.html
摘要:面向?qū)ο竺嫦驅(qū)ο缶幊痰娜Q為簡稱。面向?qū)ο缶幊淌怯贸橄蠓绞絼?chuàng)建基于現(xiàn)實(shí)世界模型的一種編程方式。面向?qū)ο缶幊炭梢钥醋鍪鞘褂靡幌盗袑ο笙嗷f(xié)作的軟件設(shè)計(jì)。面向?qū)ο缶幊痰娜齻€主要特征是封裝繼承多態(tài)。 面向?qū)ο?面向?qū)ο缶幊痰娜Q為Object Oriented Programming,簡稱OOP。面向?qū)ο缶幊淌怯贸橄蠓绞絼?chuàng)建基于現(xiàn)實(shí)世界模型的一種編程方式。面向?qū)ο缶幊炭梢钥醋鍪鞘褂靡幌盗袑ο?..
摘要:面向?qū)ο竺嫦驅(qū)ο笫鞘裁疵嫦驅(qū)ο缶幊毯喎Q相似的對象稱為類面向?qū)ο缶幊痰娜齻€主要特征是封裝繼承多態(tài)所有的程序是由一定的屬性和行為對象組成的不同的對象的訪問通過函數(shù)調(diào)用來完成對象間所有的交流都是通過方法調(diào)用通過對封裝對象數(shù)據(jù)提高復(fù)用率是一種基于原 面向?qū)ο?面向?qū)ο笫鞘裁?面向?qū)ο缶幊?簡稱OOP 相似的對象 稱為類面向?qū)ο缶幊痰娜齻€主要特征是:1.封裝 2.繼承 3.多態(tài)所有的程序是由一定...
摘要:一面向?qū)ο蟾攀雒嫦驅(qū)ο笫鞘裁词鞘褂靡幌盗袑ο笙嗷f(xié)作軟件設(shè)計(jì),目的是在編程中促進(jìn)更好靈活性和可維護(hù)性,憑借對模塊化重視,面向?qū)ο蟠a開發(fā)更簡單,容易理解面向?qū)ο蟮挠兄饕卣魇欠庋b繼承多態(tài)封裝封裝主要用于敘述對象中所包含封裝的內(nèi)容,由兩部分組 JS(JavaScript)一.面向?qū)ο?;概述?面向?qū)ο笫鞘裁矗?是使用一系列對象相互協(xié)作軟件設(shè)計(jì),目的是在編程中促進(jìn)更好靈活性和可維護(hù)性,憑借...
摘要:面向?qū)ο蟾攀雒嫦驅(qū)ο缶幊痰娜Q是簡稱為。面向?qū)ο缶幊淌怯贸橄蠓绞絼?chuàng)建給予現(xiàn)實(shí)世界模型的一種編程模式。構(gòu)造函數(shù)構(gòu)造函數(shù)又被稱為構(gòu)造器或?qū)ο竽0?,是?chuàng)建對象的一個方法。 面向?qū)ο?概述 面向?qū)ο缶幊痰娜Q是Object Oriented Programming,簡稱為OOP。面向?qū)ο缶幊淌怯贸橄蠓绞絼?chuàng)建給予現(xiàn)實(shí)世界模型的一種編程模式。面向?qū)ο缶幊炭梢悦嫦驅(qū)ο缶幊痰娜齻€主要特征是:1.封裝 ...
摘要:面向?qū)ο竺嫦驅(qū)ο蟮母拍钏^面向?qū)ο缶陀贸橄蠓绞絼?chuàng)建基于顯示世界模型的一種變成模式面向?qū)ο缶幊炭梢钥醋鍪鞘褂靡幌盗袑ο蠡ハ鄥f(xié)作的軟件設(shè)計(jì)備注面向?qū)ο笕Q簡稱面向?qū)ο缶幊痰闹饕齻€特征是封裝所謂封裝就是按要求使用得到對象的結(jié)果相關(guān)數(shù)據(jù)用于存儲 面向?qū)ο?面向?qū)ο蟮母拍? 所謂面向?qū)ο缶陀贸橄蠓绞絼?chuàng)建基于顯示世界模型的一種變成模式,面向?qū)ο缶幊炭梢钥醋鍪鞘褂靡幌盗袑ο蠡ハ鄥f(xié)作的軟件設(shè)計(jì) 備注...
閱讀 2659·2021-11-11 16:55
閱讀 697·2021-09-04 16:40
閱讀 3093·2019-08-30 15:54
閱讀 2635·2019-08-30 15:54
閱讀 2424·2019-08-30 15:46
閱讀 418·2019-08-30 15:43
閱讀 3241·2019-08-30 11:11
閱讀 2995·2019-08-28 18:17