javascript - 如何在 Javascript 中声明一个静态变量

标签 javascript prototype-oriented

<分区>

在下面的代码中,我想要一个计数器来跟踪创建的 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/

相关文章:

javascript - 在 div 中居中图像和文本

javascript - 在jointJS中获取外部元素来扩展论文

javascript - JavaScript .prototype 是如何工作的?

javascript - 这些代码有什么区别?

javascript - 为Vue-Multipane组件添加分页功能

javascript - 验证某些用户的 Passport 策略

javascript - WebRTC - 从 C++ 应用程序中将音频流记录到文件中

php - Python 中面向原型(prototype)设计的功能?

JavaScript 行为重用 : What side effects will this approach have?