<分区>
在下面的代码中,我想要一个计数器来跟踪创建的 Person 对象的数量。此代码没有这样做,我将如何实现?
function Person(){
this.name = "Peter";
this.counter = this.counter + 1;
alert(this.counter);
}
Person.prototype.counter = 0;
var p1 = new Person;
var p2 = new Person;
<分区>
在下面的代码中,我想要一个计数器来跟踪创建的 Person 对象的数量。此代码没有这样做,我将如何实现?
function Person(){
this.name = "Peter";
this.counter = this.counter + 1;
alert(this.counter);
}
Person.prototype.counter = 0;
var p1 = new Person;
var p2 = new Person;
最佳答案
function Person(){
this.name = "Peter";
Person.counter++;
alert(Person.counter);
}
Person.counter = 0;
var p1 = new Person();
var p2 = new Person();
使“静态”变量成为 Person
函数的属性,而不是 prototype
,并使用 Person
而不是 this
在构造函数中。
这是可能的,因为 JavaScript 函数是一流的(即它们是对象),因此可以拥有自己的属性。
这是一个 working example上面的代码。
关于javascript - 如何在 Javascript 中声明一个静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7307243/