如何在Javascript中声明静态变量

14 浏览
0 Comments

如何在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日
0
0 Comments

你也可以将计数器变量“私有化”,在闭包中声明为本地变量。
这是类似于私有静态变量的最佳方式:

var Person = (function() {
    var counter = 0;
    return function() {
        counter++;
        this.name = "Peter";
        alert(counter);
    };
})();
var p1 = new Person();
var p2 = new Person();

示例:https://jsfiddle.net/patodiblasi/67wucsqx/

0
0 Comments

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函数是第一类函数(即它们是对象),所以可以拥有自己的属性。

这是上述代码的工作示例

0