在新的ES6 Class语法中,无法执行
class Person {
this.type = 'person';
但是如果我在构造函数it works中定义属性:
class Person {
constructor(name) { //class constructor
this.name = name;
this.type = 'person';
}
我知道在方法is being discussed之外拥有属性的可能性,但截至今天以及与ES6规范相关的属性是不可能的。
我的解决方案是否为类定义静态属性的正确方法(出于语义原因,我在构造函数中定义了这些属性,但它似乎在其他方法中工作)?还有更好的方法吗?
我正在查看 Method Defenition 中的规范,但没有找到相关信息。
答案 0 :(得分:10)
您可以创建静态getter:
"use strict";
class Person {
static get type() {
return 'person'
}
}
console.log(Person.type) // 'person'
答案 1 :(得分:3)
如上所述,您正在做的是创建实例属性。在构造函数中添加这些属性是构造函数的用途。这与ES6没有改变。