如何在Javascript中声明静态变量
如何在Javascript中声明静态变量
这个问题已经有了答案:
在下面的代码中,我想要一个计数器来跟踪创建的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;
admin 更改状态以发布 2023年5月21日
你也可以将计数器变量“私有化”,在闭包中声明为本地变量。
这是类似于私有静态变量的最佳方式:
var Person = (function() { var counter = 0; return function() { counter++; this.name = "Peter"; alert(counter); }; })(); 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函数是第一类函数(即它们是对象),所以可以拥有自己的属性。
这是上述代码的工作示例。