:
使用の割り当て:
const STATES = {
WIP: "Work in progress",
ONLINE: "Online",
ONLINE_MODIFIED: "Online, modified",
HIDDEN: "Hidden"
};
class Box {};
Box.STATES = STATES;
console.log(Box.STATES.WIP); // Work in progress is the output
使用Object.defineProperty:
あなたがにES6静的ゲッター構文を使用することができます:あなたはObject.definePropertyを使用する場合
あなたはそれが読み取り専用
const STATES = {
WIP: "Work in progress",
ONLINE: "Online",
ONLINE_MODIFIED: "Online, modified",
HIDDEN: "Hidden"
};
class Box {};
Object.defineProperty(Box, 'STATES', {
value: STATES,
writable: false, // makes the property read-only
});
console.log(Box.STATES.WIP); // Work in progress is the output
使用静的ゲッターを作ることができますクラス定義にプロパティを追加します。読み込み専用にしてゲッターだけを定義することもできます。
const STATES = {
WIP: "Work in progress",
ONLINE: "Online",
ONLINE_MODIFIED: "Online, modified",
HIDDEN: "Hidden"
};
class Box {
static get STATES() {
return STATES;
}
}
console.log(Box.STATES.WIP); // Work in progress is the output
これらのことはすべて、n00dl3に同意します。あなたはES6モジュールを使用している場合は、名前のエクスポートを使用すると、よりappropiateのようだ:
export const BOX_STATES = {
WIP: "Work in progress",
ONLINE: "Online",
ONLINE_MODIFIED: "Online, modified",
HIDDEN: "Hidden"
};
export default class Box {};
だから、あなたはこのようにそれをインポートすることができますことが可能であることを
が、なぜあなたがそれをやりたいのでしょうか?代わりに 'export const STATES = {...};'を使用します。そして、必要な場所で他のファイルにインポートすることができます。 – nils