使用javascript创建唯一的对象标识符

Eli*_*eth 4 javascript typescript ecmascript-6 angular

我在客户端使用的对象需要一个唯一的ID.我的对象数组非常小,通常是4个项目,而不是更多.

我用这个:

export class MyItem {   
    uniqueObjectIdentifier: number;
    constructor(obj) {    
        this.uniqueObjectIdentifier = Math.random();
    }
}
Run Code Online (Sandbox Code Playgroud)

有什么东西可能是javascript或角度内部我可以访问而不是手工制作的属性?

Ori*_*ori 6

您可以使用符号.

从Symbol()返回的每个符号值都是唯一的.

export class MyItem {
  uniqueObjectIdentifier: symbol;
  constructor(obj) {
    this.uniqueObjectIdentifier = Symbol();
  }
}
Run Code Online (Sandbox Code Playgroud)

如果浏览器支持不允许您使用符号,则可以使用对象的引用.

export class MyItem {
  uniqueObjectIdentifier: object;
  constructor(obj) {
    this.uniqueObjectIdentifier = {};
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 和Math.random()的目的是一个随机数,不是唯一的;-) (3认同)