1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

JavaScriptで列挙型(Enum)を使用する

Posted at

列挙(Enum)とは

多くのプログラミング言語では、列挙型(Enum)があります。
JavaScriptのビルトインオブジェクトにはこの機能がないので独自で作成してみます。

配列で作る

const fruits = ['🍎', '🍌', '🍇']

配列を使用すると、果物の一覧を保存できますが、
利用者は配列の順序を覚えておく必要があります。

console.log(fruits[0])
// 0要素目が'🍎'であることを覚えている必要がある

オブジェクトで作る

これは、オブジェクトを使用することで解決できます。

const fruits = {
  apple: '🍎',
  banana: '🍌',
  grape: '🍇',
  orange: '🟠',
}

オブジェクトを使用すると、配列のようにインデックスを指定する必要がなくなります。

console.log(fruits.apple) // 🍎

しかし、まだプロパティを編集または削除できてしまうという問題があります。

JavaScript列挙型の作成

列挙型として使うためには、読み取り専用にする必要があります。
これはObject.freeze()を使用することで実現できます。

const fruits = Object.freeze({
    apple: '🍎',
    banana: '🍌',
    grape: '🍇',
    orange: '🟠',
})
fruits.apple = 'りんご'
console.log(fruits.apple) // 🍎

これで、プロパティが編集されるのを防ぐことができます。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?