调用名称存储在变量中的函数
这个问题在这里已经有了答案:
调用函数使用
Module[str]();
  由于Module是一个对象,因此可以使用括号表示法来访问它的动态属性和方法。 
(function() {
  var Module = (function() {
    var fctToCall = function() {
      console.log('Foo');
    };
    return {
      fctToCall: fctToCall
    };
  })();
  var Module2 = (function() {
    var init = function() {
      var str = 'fctToCall';
      
      // Call as
      Module[str]();
    };
    return {
      init: init
    };
  })();
  Module2.init();
})();更换:
var init = function () {
    var str = 'fctToCall';
    Module.str(); // here
};
附:
var init = function () {
    var str = 'fctToCall';
    Module[str](); // here
};
  这里, str被用作键来访问Module上的fctToCall函数。 
  然后你可以在你的IIFE中调用Module2.init() : 
(function() {
  var Module = (function() {
    var fctToCall = function() {
      document.write('Foo'); // (alert is broken in snippets)
    };
    return {
      fctToCall: fctToCall
    };
  })();
  var Module2 = (function() {
    var init = function() {
      var str = 'fctToCall';
      Module[str](); // Access & call `fctToCall`.
    };
    return {
      init: init
    };
  })();
  Module2.init(); // Call `init`.
})();由于JS中的所有东西都是对象,所以可以使用对象表示法。
Module[str]();
