1
(function(){

  var someValue = 5;

  function myFunction(input) = {
    return someValue * input;
  };

})();

我有一个自动执行的函数,其中包含很多东西,其中在我想全局化的函数中。我通常只会在全局范围内声明它,但它需要能够引用仅对自执行函数本地的变量。

在不完全摆脱自执行函数的情况下使函数全局可访问的最佳方法是什么(从而在全局空间中乱扔变量)?

4

2 回答 2

3

您可以将函数添加到全局window对象。

(function(){

  var someValue = 5;

  window.myFunction = function (input) {
    return someValue * input;
  };

})();

立即函数执行后,您可以调用myFunction().

于 2014-09-25T05:02:21.237 回答
2

或者,您可以执行类似的操作,其结果与 ntalbs 建议的结果基本相同。

 var myFunction;
 (function(){
     var someValue = 5;
     myFunction = function (input) {
         return someValue * input;
     };
 })();

console.log( myFunction( 4 ), window.myFunction ); // output: 20, function(input){return someValue * input}
于 2015-05-02T11:59:11.940 回答