您可以将句柄传递给 JavaScript 中的 class 实例吗?

Can you pass a handle to a class instance in JavaScript?

我是 JavaScript 的新手。我有一个 NodeJS Express 应用程序,它创建一个 class 的实例数组。我想为客户端提供一个实例句柄,这样服务器就不必为每个 API 调用按 ID 查找实例。数组索引可能会随着实例的删除而改变。有没有一种干净的方法可以做到这一点?

考虑使用 Map 或对象,而不是使用数组,因为它们的键查找是次线性的(并且比对数组使用 findIndex 快得多)。例如,而不是

const handles = [];

// when you need to add an item:
handles.push(new Handle(1234));

// when you need to retrieve an item:
const handle = handles.find(obj => obj.id === id)
// will be undefined if no such handle exists yet

const handles = new Map();

// when you need to add an item:
handles.set(1234, new Handle(1234));

// when you need to retrieve an item
const handle = handles.get(id);
// will be undefined if no such handle exists yet

也无需担心使用此方法重新编制索引。