如何从构造函数中访问静态成员

时间:2012-11-29 05:08:36

标签: typescript

class MockFamily implements IFamily {
    static instances: MockFamily[] = [];

    constructor (nodeClass: { new (): Node; }, engine: Engine) {
        MockFamily.instances.push(this);
    }

    /* sniiiiiip */
}

在上面的示例中,有没有办法在不使用实际类名的情况下从构造函数中访问静态instances值?

1 个答案:

答案 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 */
    }
}