这个题还是有点懵的,网上没什么答案,看了别人的回答感觉不是很行,就自己想了,我们可以使用原型链上的一个属性来记录次数,同时还需要判定是否是new调用
let cl = function (name) {
this.name = name
if (this instanceof cl) {//判定是否是new调用
if (cl.prototype.count !== undefined) {
cl.prototype.count++
}
else {
cl.prototype.count = 0
}
}
this.count = cl.prototype.count
}
console.log(new cl(1))//{"name":1,"count":0}
cl()
console.log(new cl(2))//{"name":2,"count":1}
这篇博客探讨了一个JavaScript函数构造器的问题,通过原型链上的属性记录实例化次数。作者创建了一个名为`cl`的构造函数,它能判断是否通过`new`关键字调用,并在`prototype`上增加一个`count`属性来累计实例数量。示例展示了如何使用这个构造器创建实例并查看`count`值。
16万+

被折叠的 条评论
为什么被折叠?



