class MockFamily implements IFamily {
static instances: MockFamily[] = [];
constructor (nodeClass: { new (): Node; }, engine: Engine) {
MockFamily.instances.push(this);
}
/* sniiiiiip */
}
在上面的示例中,有没有办法在不使用实际类名的情况下从构造函数中访问静态instances
值?
答案 0 :(得分:8)
始终通过类名访问静态变量。类对象充当具有属性的对象。你最接近的可能是:
with (MockFamily) {
instances.push(this);
}
虽然我不推荐它。
模块是另一回事。在运行时,它们的内容是函数作用域中的变量,几乎可以在任何地方直接访问。
module MyModule {
var instances: IFamily[] = [];
export class MockFamily implements IFamily {
constructor (nodeClass: { new (): Node; }, engine: Engine) {
instances.push(this);
}
/* sniiiiiip */
}
}