javascript - 在 Javascript 中使用类变量

标签 javascript

我正在尝试用 Javascript 创建一个类(或者任何等效的类),它将计数存储在类变量中,以便构造函数可以为创建的对象分配一个 id。类似于以下内容:

Shift = function(hour) {
  this.id = Shift.idCount;
  Shift.idCount++;
} 

但是我不知道 idCount 应该在哪里初始化甚至定义。有办法做到这一点吗?

最佳答案

我会用一个闭包来做到这一点:

var Shift = function() {
  var idCount = 1; // initial id
  return function Shift(hour) { // this is the actual constructor
    this.id = idCount++;
    // other initialization ...
  };
}();

var aShift = new Shift(9);
alert(aShift.id); // 1

var anotherShift = new Shift(17);
alert(anotherShift.id); // 2

它使用匿名包装函数来提供一个可以维护计数器的闭包。匿名函数返回稍后将调用的实际构造函数。每次调用构造函数都会将计数器的当前值复制到新对象的“id”属性,并递增它。

请记住,当您学习 JavaScript 继承时,实际上并没有与 C# 或 Java 等语言中的“类”概念直接等效的概念。让 JavaScript 表现得像那些语言的尝试几乎总是以挫败和心碎告终。

关于javascript - 在 Javascript 中使用类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26653637/

相关文章:

javascript - 如何使用 javascript 或 ajax 在其他按钮上使用 onclick 更改按钮的颜色

Javascript 下拉菜单 - 选择更改时刷新

javascript - 从 Javascript 向 mysql 插入多个值

javascript - 如何将 stdout 从 NodeJS 实时发送到 AngularJS?

javascript - 三个提交按钮的确认,其值作为确认消息

javascript - 为什么有时在使用变量之前将 'null' 分配给它

javascript - Ajax 路径适用于一个数组,但不适用于另一个数组

javascript - 如何访问另一个函数中的回调参数?

javascript - 在topojson美国 map 上放置坐标值

javascript - jQuery .text 不工作