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

Ben*_*uan 2 javascript iife es6-modules

模块/IIFE 等有点麻烦。我有一个脚本,它曾经是一个 IIFE,并且使用了很多这个关键字等等。我正试图将它变成一个模块。

我有以下模块dice.js

export default function () {
this.createDice = function() { ... }
... 
}
Run Code Online (Sandbox Code Playgroud)

在主应用程序上,我称之为:

import Dice from "./dice.js";

let DICE = new Dice();
let dice1 = DICE.createDice();
let dice2 = DICE.createDice();
Run Code Online (Sandbox Code Playgroud)

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

import Dice from "./dice.js";

let dice1 = Dice.createDice();
let dice2 = Dice.createDice();
Run Code Online (Sandbox Code Playgroud)

我已经尝试过 IIFE,但无法解决问题。

Jar*_*a X 6

在 IIFE 你会做

export default (function () {
  function Dice() {
    this.createDice = function() { ... }
    ... 
  }
  return new Dice();
})()
Run Code Online (Sandbox Code Playgroud)

但真的,只要这样做

function Dice() {
  this.createDice = function() { ... }
  ...
}
export default new Dice();
Run Code Online (Sandbox Code Playgroud)