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

问题描述 投票:0回答:1

[模块/ 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,但无法正确完成。

javascript es6-modules iife
1个回答
0
投票

在IIFE中,您会做的

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

但是实际上,只是这样做

function Dice() {
  this.createDice = function() { ... }
  ...
}
export default new Dice();
© www.soinside.com 2019 - 2024. All rights reserved.