質問: es6クラスで静的定数を宣言する 私はclassで定数を実装したいのですが、それはコードの中でそれらを見つけるのが理にかなっているところです。これまでは、静的メソッドを使用して次の回避策を実装していました。class myclass { static constant1() { return 33; } static constant2() { return 2; } // ... } 私はプロトタイプをいじるの可能性があることを知っていますが、多くの人はこれに反対します。es6クラスに定数を実装するためのより良い方法はありますか?
回答: es6クラスの奇妙な機能を使用して、クラスに静的定数を定義する方法を作成できます。静的はサブクラスによって継承されるので、次のことができます。const withconsts = (map, baseclass = object) => { class constclass extends baseclass { } object.keys(map).foreach(key => { object.defineproperty(constclass, key, { value: map[key], writable : false, enumerable : true, configurable : false }); }); return constclass; }; class myclass extends withconsts({ my_const: 'this is defined' }) { foo() { console.log(myclass.my_const); } }