javascript - 为类实例创建唯一 ID
问题描述
我是 javascript 新手,但我对 Java 有一些经验。我正在尝试创建一个程序,让用户创建具有截止日期和描述的任务,然后将其保存在数据结构中,直到他们完成为止。
我想在创建每个任务时为其添加一个唯一标识符并将其显示给用户,以便他们稍后可以使用该标识符来查找任务,(或者至少我可以使用它来查找任务到期日期和描述可能不是唯一的)。
我的问题是,来自 Java,我想创建一个“任务”类,其中包含我希望保存的属性以及唯一标识符。
在 Java 中,我会在类中使用一个私有静态变量,每次创建该类的新实例时该变量都会增加。但是,这似乎不适用于 javascript,其他堆栈溢出帖子推荐的解决方法似乎不适用于我的情况。
我在这里看到另一篇推荐使用“const”关键字的帖子,但是当我尝试更新它时似乎会引发错误。
可以存在于类中的私有静态 int 变量的 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"));
推荐阅读
- python - 为什么 UserDict 的 __copy__ 和 copy() 的行为不一致
- swift - 快速将多个图像从集合视图保存到 Firebase 存储并获取 downloadURL?
- node.js - TeamCity、NodeJS 和 API 测试
- pyqt5 - 按下按钮时创建按钮
- python - 从 Google 抓取/提取 Skype ID
- angular - 如何在 Angular 中使用 ngModel 预填充表单
- ios - 如何获取 NSPropertyDescription 属性的新旧值
- javascript - 有没有办法让类构造函数像普通函数一样被调用?
- excel - 范围变量(重新)赋值
- c# - Xamarin Forms:我无法从 Xamarin.Forms.Editor 获取文本