类静态属性

Rik*_*ard 2 javascript ecmascript-6

在新的ES6 Class语法中,不可能这样做

class Person {
    this.type = 'person';
Run Code Online (Sandbox Code Playgroud)

但是如果我在构造函数中定义属性它可以工作:

class Person {
    constructor(name) { //class constructor
        this.name = name;
        this.type = 'person';
    }
Run Code Online (Sandbox Code Playgroud)

我知道有属性之外的方法的可能性正在讨论中,但今天和什么涉及到ES6规格是不可能的.

我的解决方案是为类定义静态属性的正确方法(出于语义原因,我在构造函数中定义了这些属性,但它似乎在其他方法中工作)?有没有更好的办法?

我正在查看Method Defenition中的规范,没有找到关于此的信息.

jus*_*ris 10

您可以创建静态getter:

"use strict";

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

console.log(Person.type) // 'person'
Run Code Online (Sandbox Code Playgroud)