teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

表現を変えた

2017/03/23 16:21

投稿

gaogao_9
gaogao_9

スコア103

answer CHANGED
@@ -68,7 +68,7 @@
68
68
 
69
69
  ```js
70
70
  try{
71
- throw Symbol.for("hoge.fuga.AuthError");
71
+ throw Symbol.for("hoge.fuga.AuthError");
72
72
  }
73
73
  catch(err){
74
74
  console.log(err instanceof Error); // false
@@ -78,6 +78,6 @@
78
78
  ```
79
79
 
80
80
  そもそも論ですが、今回やりたいことは例外を作ることではなく、例外を投げて種類に応じて処理を分類することですよね。
81
- そういう場合には、わざわざErrorを投げる必要はなくて、種類さえわかればそれで良いんですよね。そういう時は`Symbol`は相性良かったりします。
81
+ そういう場合には、わざわざErrorを投げる必要はなくて、種類さえわかれば`Symbol`もなんでも良いんですよね。そういう時は`Symbol`は他の言語の`Enum`当の存在であり、相良かったりします。
82
82
 
83
83
  今回は`Symbol.for`を用いたグローバルシンボルを利用しましたが、もちろんローカルシンボルを用いても可能です。好みで使い分ければ良いと思います。