所以我遇到了一个非常特殊的问题,我已经花了很长时间了。
我有两个要成为单例的类,可以为我的打字稿应用程序提供服务。它们在单独的文件中声明:
Config.ts
class Config {
private static _instance = new Config();
static get instance() { return this._instance }
private constructor() {
console.log('CONFIG_INIT');
}
get config() { return [] }
}
Hash.ts
import { Config } from './Config';
class Hash {
private static _instance = new Hash();
static get instance() { return this._instance }
private constructor() {
console.log('HASH_INIT');
}
test() { return Config.instance.config }
}
main.ts
import { Config } from './Config.ts';
import { Hash } from './Hash.ts';
console.log(Config.instance);
console.log(Hash.instance.test);
执行此代码后,我看到CONFIG_INIT
被打印两次。另外,如果我在Config
的构造函数中设置了断点,则断点只会在第一次被命中。此外,如果我将Hash
类复制并粘贴到main.ts
内,问题就消失了,CONFIG_INIT
仅打印了一次。
这可能是什么原因?我在这里做错了什么吗?
谢谢, 阿西姆