如何在ES6类中定义静态属性

Ami*_*shi 29 javascript static ecmascript-6 es6-class

我想在ES6类中有一个静态属性.此属性值最初是一个空数组.

    class Game{

        constructor(){
           // this.cards = [];
        }

        static cards = [];
    }
    
    Game.cards.push(1);

    console.log(Game.cards);
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

zag*_*goa 45

class Game{
   constructor(){}
}
Game.cards = [];

Game.cards.push(1);
console.log(Game.cards);
Run Code Online (Sandbox Code Playgroud)

您可以像这样定义一个静态变量.

  • 感谢您提供信息,但是在类本身内部没有为该类创建静态变量的概念吗?看到属性漂浮在类之外的地方很奇怪,我知道在Java中您可以简单地创建一个静态类变量...在javascript中还不可能吗? (6认同)
  • @user2774480 `Game.cards = []` 部分完全符合您的要求。在类声明中没有语法可做。 (3认同)

mar*_*kru 40

一种方法可以是这样的:

let _cards = [];
class Game{
    static get cards() { return _cards; }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以这样做:

Game.cards.push(1);
console.log(Game.cards);
Run Code Online (Sandbox Code Playgroud)

您可以在此讨论中找到有关在es6中包含静态属性的一些有用的要点.