我想在 class
中实现常量,因为在代码中找到它们才有意义。
到目前为止,我一直在使用静态方法实现以下解决方法:
class MyClass {
static constant1() { return 33; }
static constant2() { return 2; }
// ...
}
我知道有可能摆弄原型,但许多人建议不要这样做。
有没有更好的方法在 ES6 类中实现常量?
原文由 Jérôme Verstrynge 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以执行以下操作:
从 模块 导出
const
。根据您的用例,您可以:并在必要时从模块中导入它。或者,基于您的静态方法想法,您可以声明一个
static
get 访问器:这样,您就不需要括号:
Babel REPL 示例
然后,正如您所说,由于
class
只是函数的语法糖,您可以添加一个不可写的属性,如下所示:如果我们可以做类似的事情可能会很好:
但不幸的是,此类 属性语法 仅在 ES7 提案中,即使那样它也不允许将
const
添加到属性中。