将 IIFE 格式的函数导出到 ES6 模块

Exporting IIFE formated function to ES6 Module

在模块/IIFE 等方面遇到了一些麻烦。我有一个脚本,它曾经是一个 IIFE,并且使用了很多这个关键字等。我正在尝试将它变成一个模块。

我有以下模块dice.js:

export default function () {
this.createDice = function() { ... }
... 
}

在主APP上我称之为:

import Dice from "./dice.js";

let DICE = new Dice();
let dice1 = DICE.createDice();
let dice2 = DICE.createDice();

它有效...我的问题是,有没有办法避免创建额外的 DICE 变量来调用所有方法?换句话说,我想这样称呼它:

import Dice from "./dice.js";

let dice1 = Dice.createDice();
let dice2 = Dice.createDice();

我试过使用 IIFE,但做不好。

在 IIFE 中你会做

export default (function () {
  function Dice() {
    this.createDice = function() { ... }
    ... 
  }
  return new Dice();
})()

但真的,就这样做

function Dice() {
  this.createDice = function() { ... }
  ...
}
export default new Dice();