如何判断构造函数被实例化了几次
思否 问答 已采纳 👍 5 含 AI 优化版
问题
如何判断构造函数被实例化了几次
由大模型辅助整理,保留原意,优化结构与可读性。
问题概述
提问者想知道如何统计一个构造函数(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