静态类变量

时间:2018-01-30 15:52:03

标签: javascript node.js

我试图在节点中编写一个类,每个对象都可以有一个与之关联的唯一ID,所以如果我有一个Person类,那么第一个Person对象将具有ID 1,第二个将具有ID 2等。

在Java中,解决方案就是这样的

public class Person {

  static int ID = 0;

  public Person() {
    ++ID;
  }
}

我发现了一些解决方案,但与Java中的实现相比,它们看起来非常冗长和愚蠢,是否有一种简单的方法可以像我在Java中提到的那样在节点中执行此操作?感谢

1 个答案:

答案 0 :(得分:4)

简单的js:

let ID = 0;

class Person {
  constructor() {
     ++ID;
   }
}

可以使其成为Person的财产:

class Person {
  constructor() {
     ++Person.ID;
   }

}

Person.ID = 0;

当您来自Java背景时,您可能只使用typescript并将其编译为js:

class Person {
  public static ID = 0;

  constructor() {
     ++Person.ID;
   }
}

(静态属性目前在js(ESnext)提案中,所以这可能会很快成为有效的js ...)

一些意见:

  

我找到了一些解决方案,但与Java中的实现相比,它们看起来非常冗长和愚蠢

总是以更优雅的方式在js中编写java代码。