我想在a中实现常量class,因为在代码中找到它们是有意义的.
到目前为止,我一直在使用静态方法实现以下解决方法:
class MyClass {
static constant1() { return 33; }
static constant2() { return 2; }
// ...
}
Run Code Online (Sandbox Code Playgroud)
我知道有可能摆弄原型,但许多人建议不要这样做.
有没有更好的方法在ES6类中实现常量?
我一直在寻找一个明确的答案,弹出的大部分内容仍然与旧的(或者我应该说"传统的")方式相关function.
根据这个SO答案,
ES2015不支持类属性.
据我所知,向类中添加静态变量的唯一方法是:
https://jsfiddle.net/abalter/fknwx3n4/
class C {
constructor(x) {
console.log("in constructor " + x);
this.x = x;
this.add(this.x);
}
add(x) {
console.log("in add " + x);
C.alist.push(x);
}
show() {
console.log("in show");
console.log(C.alist);
}
}
// MUST be done outside of actual class definition.
C.alist = [];
c1 = new C(5);
c1.show();
c2 = new C(10);
c1.show();
c2.show();
Run Code Online (Sandbox Code Playgroud)
这是故事的结尾吗?在类定义中无法做到这一点似乎很奇怪.