首页 > 解决方案 > 为类实例创建唯一 ID

问题描述

我是 javascript 新手,但我对 Java 有一些经验。我正在尝试创建一个程序,让用户创建具有截止日期和描述的任务,然后将其保存在数据结构中,直到他们完成为止。

我想在创建每个任务时为其添加一个唯一标识符并将其显示给用户,以便他们稍后可以使用该标识符来查找任务,(或者至少我可以使用它来查找任务到期日期和描述可能不是唯一的)。

我的问题是,来自 Java,我想创建一个“任务”类,其中包含我希望保存的属性以及唯一标识符。

在 Java 中,我会在类中使用一个私有静态变量,每次创建该类的新实例时该变量都会增加。但是,这似乎不适用于 javascript,其他堆栈溢出帖子推荐的解决方法似乎不适用于我的情况。

我在这里看到另一篇推荐使用“const”关键字的帖子,但是当我尝试更新它时似乎会引发错误。

可以存在于类中的私有静态 int 变量的 javascript 版本是什么,我可以随每个新实例增加该变量?

标签: javascript

解决方案


Javascript 没有静态属性,只有静态方法。在您的情况下,我会做的是使用在类外声明的局部变量。例如:

let counter = 0;

class Task {
  constructor(name) {
    this.id = counter++;
    this.name = name;
  }
}

console.log(new Task("Test A"));
console.log(new Task("Test B"));


推荐阅读