我们非常清楚ES6的class
也带来了:static
,get
以及set
功能:
但是,static
关键字似乎仅保留给方法:
class Person {
// static method --> No error
static size(){
}
// static attribute --> with Error
static MIN=10;
}
如何在ES6类中编写static
属性以获得类似静态属性MIN
的内容。
我们知道我们可以在课程定义后添加以下指令:
Person.MIN=10;
但是,我们的范围是找到在类块中编写指令的方法
答案 0 :(得分:8)
您可以使用静态getter:
class HasStaticValue {
static get MIN() {
return 10;
}
}
console.log(HasStaticValue.MIN);

答案 1 :(得分:2)
你需要一个方法来返回属性,否则它只能在类中访问,这会破坏你尝试用静态做的事情。
答案 2 :(得分:2)
除非使用静态吸气器,否则无法通过ES6达到您的示波器,但是,您可以在ES7中使用。
无论如何,Babel现在支持想要的语法(检查http://babeljs.io/):
class Foo {
bar = 2
static iha = 'string'
}
const foo = new Foo();
console.log(foo.bar, foo.iha, Foo.bar, Foo.iha);
// 2, undefined, undefined, 'string'