类静态属性

时间:2016-01-25 20:24:29

标签: javascript ecmascript-6

在新的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 中的规范,但没有找到相关信息。

2 个答案:

答案 0 :(得分:10)

您可以创建静态getter:

"use strict";

class Person {
  static get type() {
    return 'person'
  }
}

console.log(Person.type) // 'person'

答案 1 :(得分:3)

如上所述,您正在做的是创建实例属性。在构造函数中添加这些属性是构造函数的用途。这与ES6没有改变。