有什么方法可以跟踪我在 JavaScript 中使用工厂函数创建了多少个对象?

Is there any way to keep track of how many objects I have created with a factory function in JavaScript?

假设我有一家这样的工厂:

const itemFactory = () => {
    const itemName = ''
    const firstMethod = () => {
        // something goes here
    }

    return { itemName, firstMethod }
}

有什么方法可以跟踪我使用该功能创建了多少项? 我想在每个项目的 itemName 属性 中包含一个索引,如下所示:item0item1item2

您可以使用高阶函数来实现:

const createItemFactory = () => {
    let currentItem = 0;
    return () => {
        const itemName = 'item' + currentItem++;
        const firstMethod = () => {
            // something goes here
        }

        return { itemName, firstMethod };
    }
}

然后您可以创建 itemFactory:

const itemFactory = createItemFactory();
const item0 = itemFactory(); 
console.log(item0.itemName); // item0;
const item1 = itemFactory(); 
console.log(item1.itemName); // item1;

Read more about JavaScript closures