在Javascript中使用类变量
Using Class Variables in Javascript
本文关键字:类变量 Javascript 更新时间:2023-09-26
我正在尝试用Javascript创建一个class(或任何等效的),它在class Variable中存储一个计数,这样构造函数就可以为创建的对象分配一个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像那些语言一样工作,几乎总是以沮丧和心碎告终。
是的,只需说
Shift.idCount = 0;
在CCD_ 1函数的定义之后。
这允许您随时访问计数器的当前值(如果需要的话)。如果不想直接访问计数器的值,也不想让其他人直接访问,那么按照@Pointy的建议,在Shift
中使用一个私有变量。
相关文章:
- Javascript ES6共享类变量
- 调用类向后变量 (JavaScript)
- 初始化父类中的变量(JavaScript/CoffeeScript 习语)
- 为什么 Javascript 中的类变量在尝试多次调用它们或将它们分配给局部变量时会消失
- 如何从json函数访问javascript中的基类变量
- 无法更改 javascript 函数中的类变量
- Javascript 从父级中定义的继承类方法访问类变量
- JavaScript类变量范围混淆(socket.io 事件)
- 在Javascript中使用类变量
- Javascript中未定义的类变量
- 在javascript中,是否可以创建一个可修改的静态类变量
- 从javascript渲染部分,传递类变量的问题
- JavaScript中的类变量和setInterval
- Javascript类变量作用域变为未定义
- 在父类的方法中使用子类的类变量,这样变量就可以动态地改变(javascript)
- 如何正确地创建Javascript原型,使类变量不会在实例化之间持久存在
- 使用Javascript访问存储在Session State中的类变量
- 具有类/变量ID的Javascript元素
- 找到javascript中psudo类变量的值
- Javascript对象-如何在类函数中调用类变量