以下是您可以执行的一些操作:
从模块中导出 。根据您的使用案例,您可以:const
export const constant1 = 33;
并在必要时从模块中导入它。或者,基于静态方法的想法,您可以声明一个 get 访问器:static
const constant1 = 33,
constant2 = 2;
class Example {
static get constant1() {
return constant1;
}
static get constant2() {
return constant2;
}
}
这样,您就不需要括号:
const one = Example.constant1;
巴别塔示例
然后,正如你所说,由于a只是函数的语法糖,你可以添加一个不可写的属性,如下所示: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