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

jds*_*816 4 typescript

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

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

    /* sniiiiiip */
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中是否有任何方法可以instances在不使用实际类名的情况下从构造函数中访问静态值?

Mar*_*rot 8

始终通过类名访问静态变量.类对象充当具有属性的对象.你最接近的可能是:

with (MockFamily) {
    instances.push(this);
}
Run Code Online (Sandbox Code Playgroud)

虽然我不推荐它.

模块是另一回事.在运行时,它们的内容是函数作用域中的变量,几乎可以在任何地方直接访问.

module MyModule {
    var instances: IFamily[] = [];

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

        /* sniiiiiip */
    }
}
Run Code Online (Sandbox Code Playgroud)