国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JavaScript可擴展枚舉封裝

fevin / 2154人閱讀

摘要:枚舉結構通常我們定義的枚舉值使用如果需要包含其他屬性,我們可以添加額外的對象使用封裝下面我們進行封裝枚舉類栗子步驟步驟通過獲取當前列的值步驟初始化缺少必要的或根據獲取對象值狀態值獲取枚舉數組使用方法步驟步驟步驟

枚舉結構

通常我們定義的枚舉值:

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"
封裝

下面我們進行封裝:

/**
 * 枚舉類
 *
 * @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獲取當前列的值
 *                    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");
        }
      });
    }
  }

  /**
   * 根據value獲取對象值
   * @param {string|number} value 狀態值
   */
  get(value) {
    return this.__props[value];
  }
 
  /**
   * 獲取枚舉數組
   */
  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/...](

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/99417.html

相關文章

  • JavaScript-面向對象、Object類型

    摘要:面向對象面向對象編程的全稱為簡稱。面向對象編程是用抽象方式創建基于現實世界模型的一種編程方式。面向對象編程可以看做是使用一系列對象相互協作的軟件設計。面向對象編程的三個主要特征是封裝繼承多態。 面向對象 面向對象編程的全稱為Object Oriented Programming,簡稱OOP。面向對象編程是用抽象方式創建基于現實世界模型的一種編程方式。面向對象編程可以看做是使用一系列對象...

    amuqiao 評論0 收藏0
  • JavaScript面向對象...Object類型...

    摘要:面向對象面向對象是什么面向對象編程簡稱相似的對象稱為類面向對象編程的三個主要特征是封裝繼承多態所有的程序是由一定的屬性和行為對象組成的不同的對象的訪問通過函數調用來完成對象間所有的交流都是通過方法調用通過對封裝對象數據提高復用率是一種基于原 面向對象 面向對象是什么 面向對象編程 簡稱OOP 相似的對象 稱為類面向對象編程的三個主要特征是:1.封裝 2.繼承 3.多態所有的程序是由一定...

    keithyau 評論0 收藏0
  • JavaScript】面向對象

    摘要:一面向對象概述面向對象是什么是使用一系列對象相互協作軟件設計,目的是在編程中促進更好靈活性和可維護性,憑借對模塊化重視,面向對象代碼開發更簡單,容易理解面向對象的有主要特征是封裝繼承多態封裝封裝主要用于敘述對象中所包含封裝的內容,由兩部分組 JS(JavaScript)一.面向對象;概述; 面向對象是什么; 是使用一系列對象相互協作軟件設計,目的是在編程中促進更好靈活性和可維護性,憑借...

    gself 評論0 收藏0
  • JavaScript學習第七天筆記(面向對象)

    摘要:面向對象概述面向對象編程的全稱是簡稱為。面向對象編程是用抽象方式創建給予現實世界模型的一種編程模式。構造函數構造函數又被稱為構造器或對象模板,是創建對象的一個方法。 面向對象 概述 面向對象編程的全稱是Object Oriented Programming,簡稱為OOP。面向對象編程是用抽象方式創建給予現實世界模型的一種編程模式。面向對象編程可以面向對象編程的三個主要特征是:1.封裝 ...

    Tychio 評論0 收藏0
  • JavaScript中的面向對象個人分享

    摘要:面向對象面向對象的概念所謂面向對象就用抽象方式創建基于顯示世界模型的一種變成模式面向對象編程可以看做是使用一系列對象互相協作的軟件設計備注面向對象全稱簡稱面向對象編程的主要三個特征是封裝所謂封裝就是按要求使用得到對象的結果相關數據用于存儲 面向對象 面向對象的概念 所謂面向對象就用抽象方式創建基于顯示世界模型的一種變成模式,面向對象編程可以看做是使用一系列對象互相協作的軟件設計 備注...

    DirtyMind 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<