[解決済み] ES6クラスで静的定数を宣言する?
2022-03-15 05:21:39
質問
で定数を実装したい。
class
というのも、コードの中で位置を特定するのが理にかなっているからです。
これまでは、以下のような回避策を静的メソッドで実装していました。
class MyClass {
static constant1() { return 33; }
static constant2() { return 2; }
// ...
}
プロトタイプをいじる可能性があることは知っていますが、多くの人がこれを勧めません。
ES6クラスで定数を実装する良い方法はありますか?
どのように解決するのですか?
ここでは、いくつかの方法を紹介します。
をエクスポートします。
const
から
モジュール
. ユースケースによっては、ただ。
export const constant1 = 33;
そして、必要に応じてモジュールからそれをインポートしてください。あるいは、静的メソッドのアイデアをもとに
static
取得アクセサー
:
const constant1 = 33,
constant2 = 2;
class Example {
static get constant1() {
return constant1;
}
static get constant2() {
return constant2;
}
}
そうすれば、括弧は不要になる。
const one = Example.constant1;
では、おっしゃるように
class
は、関数のための単なる構文上の糖であり、このように書き込み不可能なプロパティを追加するだけでよいのです。
class Example {
}
Object.defineProperty(Example, 'constant1', {
value: 33,
writable : false,
enumerable : true,
configurable : false
});
Example.constant1; // 33
Example.constant1 = 15; // TypeError
というようなことができればいいのかもしれませんね。
class Example {
static const constant1 = 33;
}
しかし、残念ながらこの
クラスプロパティの構文
は ES7 の提案でしかなく、その場合でも
const
をプロパティに追加します。
関連
-
[解決済み】SyntaxError: JSONの位置1に予期しないトークンoがある。
-
[解決済み] Objective-Cの定数
-
[解決済み] Pythonで静的なクラス変数は可能ですか?
-
[解決済み] Pythonのクラスはなぜオブジェクトを継承するのですか?
-
[解決済み] Static readonly」対「const」。
-
[解決済み] JavaScriptに定数はありますか?
-
[解決済み] ES6インポートで中括弧を使用するのはどのような場合ですか?
-
[解決済み] JavaScript ES6クラスにおけるプライベートプロパティ
-
[解決済み】Node.jsのrequireとES6のimport/exportを使い分ける。
-
[解決済み】ES6クラス変数の代替品
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JSクロスドメインソリューション リアクト構成 リバースプロキシ
-
Vueにシンプルなメモ帳機能を実装
-
JavaScriptの配列共通メソッド解説
-
Vueの「データを聴く」原則を解説
-
Vueの一般的な組み込みディレクティブの説明
-
[解決済み] 配列の結合時に未定義のプロパティ 'push' を読み込むことができない
-
[解決済み】JavaScript TypeError: null のプロパティ 'style' を読み取ることができない
-
[解決済み】<select>で現在選択されている<option>をJavaScriptで取得するにはどうすればよいですか?
-
[解決済み] クラス定数を実装するには?
-
[解決済み】ES6クラス変数の代替品