javascript - 默认导出类的新实例

标签 javascript es6-modules

下面的代码片段会在每次导入时生成新实例吗?

// 1st implementation

class ConnectionManager {
...
}

export default new ConnectionManager();
// 2nd implementation

class ConnectionManager {
...
}

const connectionManager = new ConnectionManager();
export default connectionManager;

如果是,我怎样才能在每次导入中获得相同的实例?

最佳答案

ES6 模块遵循单实例模式。也就是说,在加载模块时创建实例。

Here是一篇关于它的文章。

// File: yolo.js

class Yolo {}
export let yolo = new Yolo();

// File: laser.js

import { yolo } from "./yolo.js";
// yolo is a single instance of Yolo class


// File: cat.js

import { yolo } from "./yolo.js";
// same yolo as in laster.js

关于javascript - 默认导出类的新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57049953/

相关文章:

javascript - 将 bassistance jquery-validator 与 formtowizard 插件一起使用

javascript - 引用错误: Cannot access 'Player' before initialization

javascript - 有条件导入: import if exists

Javascript - 可以使用 'import' 关键字导入 css 吗?

javascript - 模块之间不持久的解构变量值

javascript - 将 JS 值传递给 HTML 以创建 anchor 标记

php - json_encode 将特定字符串替换为数字(对于 flot.js)

javascript - 将特定字符串添加到对象数组中具有条件的对象数据

javascript - 使用字符串键和 JQuery 值动态创建关联数组

javascript - es6模块中的变量范围在哪里?