【发布时间】:2013-04-17 19:05:36
【问题描述】:
我实际上正在从事一个项目,在该项目中我需要一堆对象(如果您愿意,可以使用类,而不是实例)来实现相同的行为。基本上,每个“类”都需要提供一种方法来操作包含它的每个实例的数组。
这样的编码让我很困扰:
function A() { ... }
A.instances = [];
A.someStaticMethod = function () {
for (var i = 0 ; i < A.instances ; i++) {
A.instances[i].doSomething();
}
}
A.prototype.doSomething = function () { ... }
function B() { ... }
B.instances = [];
B.someStaticMethod = function () {
for (var i = 0 ; i < B.instances ; i++) {
B.instances[i].doSomething();
}
}
B.prototype.doSomething = function () { ... }
我只是不喜欢复制/粘贴的代码。来自类语言,我自然认为我所要做的就是创建第三个类,该类将实现那些静态成员/方法并让我的其他类继承它。 我几乎不知道,你不能继承静态成员。
我愿意学习 javascript 是如何工作的,所以我想知道是否有任何方法可以在不必每次都复制代码的情况下获得想要的行为。
【问题讨论】:
-
静态方法在其他语言中是如何继承的?
-
他们不是,我猜。但是,我的问题仍然与静态属性有关。
标签: javascript inheritance static