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

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

    /* sniiiiiip */
}

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

4

1 回答 1

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 */
    }
}
于 2012-11-29T07:37:10.830 回答