Pro*_*kie 2 javascript constructor object count
好的,所以我想在javascript中创建一个构造函数,它将计算使用这个构造函数创建的实例总数.
var Component = function(name) {
this.name = name;
this.add = function(){this.prototype.countInstances++;};
this.add();
};
Run Code Online (Sandbox Code Playgroud)
和
Component.prototype.countInstances=0;
Run Code Online (Sandbox Code Playgroud)
正如我所理解的那样,countInstances变量被添加到原型中,并且将像所有实例的静态副本一样充当我的计数器.
这段代码的问题是,因为我在构造函数之后声明了countInstances,所以我在构造函数代码中遇到了错误.怎么纠正这个?
如果您希望将属性附加到类本身,而不是类的实例,则不希望将该属性添加到prototype:
var Component = function(name) {
this.name = name;
Component.instanceCount++;
};
Component.instanceCount = 0;
Run Code Online (Sandbox Code Playgroud)
这样,您将每个名称分配给其实例,并将总实例计数分配给静态类:
var foo = new Component('bar');
var baz = new Component('qux');
console.info(foo.name, baz.name, Component.instanceCount);
>> 'bar', 'qux', 2
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2009 次 |
最近记录: |