如何判断构造函数被实例化了几次

思否 问答 已采纳 👍 5 含 AI 优化版

问题

如何判断构造函数被实例化了几次

在 SegmentFault 查看原问题 →

由大模型辅助整理,保留原意,优化结构与可读性。

问题概述

提问者想知道如何统计一个构造函数(class 或普通函数)在代码运行过程中被 new 实例化了多少次。

涉及技术

JavaScript

期望结果

得到一种可靠的计数方案,能够准确记录某个构造函数被实例化的次数。

回答

原始回答

2016-12-09 就是判断你的代码执行了几次么。做一个计数不就解决了

AI 优化 · 回答整理

解答思路

本质上就是统计“这段构造代码被执行了几次”,最简单可靠的方式是给构造函数增加一个计数器,每次实例化时自增。

示例代码

function Person(name) {
  Person.count = (Person.count || 0) + 1;
  this.name = name;
}

new Person("a");
new Person("b");
console.log(Person.count); // 2

详细说明

把计数器挂在构造函数自身的静态属性上(如 Person.count),每次 new Person() 执行时在构造函数体内自增。这样计数与实例的生命周期无关,即使实例被销毁,计数值依然准确保留了“历史实例化次数”。

小结

判断构造函数被实例化的次数,核心思路就是“计数”:在构造函数内部维护一个静态计数器,每次执行 new 时自增即可。

由大模型辅助整理,保留原意,补充结构与代码格式。

回答转载自 SegmentFault

评论

评论功能即将开放。你也可以通过 邮件GitHub Issue 反馈。