项目之间的Javascript IIFE代码共享

时间:2016-09-07 22:07:45

标签: javascript iife

请寻找纯JavaScript答案。

使用IIFE进行JavaScript游戏。实际上在多个网页上有多个游戏。假设所有这些游戏都需要使用一段共同的代码。比如说,一个diceroller; 1d20,3d6等

这样做的正确方法是什么? IIFE是否应该以具有独特名称的方式进入全球?我担心设置全局(也许我太担心了)。

diceroller是否需要传递给IIFE游戏?如何正确地做到这一点?

1 个答案:

答案 0 :(得分:3)

我认为你想要一个揭示模块模式,而不是IIFE模式。

//Revealing Module Pattern (Public & Private) w Public Namespace 'game'
var game = (function() {

    // object to expose as public properties and methods such as game.roll
    var pub = {};

    //game.roll
    pub.roll = function () {
        //do your thing
        return randomIntFromInterval(1,6);
    };

    function randomIntFromInterval(min,max){
        return Math.floor(Math.random()*(max-min+1)+min);
    }

  //API
  return pub;
}());