在匿名自执行函数中定义全局函数?

时间:2014-09-25 04:59:28

标签: javascript self-executing-function

(function(){

  var someValue = 5;

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

})();

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

在不完全摆脱自执行功能的情况下使全局可访问功能全局可访问的最佳方法是什么(因此用变量乱丢全局空间)?

2 个答案:

答案 0 :(得分:3)

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

(function(){

  var someValue = 5;

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

})();

执行立即执行功能后,您可以拨打myFunction()

答案 1 :(得分: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}