【发布时间】:2018-08-02 07:03:49
【问题描述】:
我有一个只包含静态方法的类,并且不需要实例化它。我希望这个类用静态值包装一个“枚举”,供这个类下的静态方法使用。这是此用例的简化示例,因为我“想要”它也看起来像:
class UserActionsService {
static actionTypes = {
foo: 1,
bar: 2,
buzz: 3
};
static doSomethingWith(actionType) {
console.log(actoinType);
}
}
用法应该是这样的:
UserActionsService.doSomethingWith(UserActionsService.actionTypes.buzz);
但是,由于我无法使静态 actionTypes 成员工作,我用这样的静态函数包装它:
class UserActionsService {
static actionTypes() {
return {
foo: 1,
bar: 2,
buzz: 3
};
}
static doSomethingWith(actionType) {
console.log(actoinType);
}
}
并像这样使用它:
UserActionsService.doSomethingWith(UserActionsService.actionTypes().buzz);
///////////////////////////////////////////////// Ugly part here ^^
它有效,但丑陋。我错过了什么吗?是否有特定原因使仅静态方法可用,而静态成员不可用?
【问题讨论】:
标签: javascript class ecmascript-6