2014-09-25 186 views
1
(function(){ 

    var someValue = 5; 

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

})(); 

我有一個自動執行的功能,在那個我想使全局函數包含了很多東西,其中之一。我通常只是在全局範圍內聲明它,但它需要能夠引用只侷限於自執行函數的變量。在匿名自執行函數中定義全局函數?

什麼是做(這樣亂丟與變量的全局空間)功能,不擺脫完全的自動執行功能的全局可訪問的最佳方法?

回答

3

您可以將該函數添加到全局window對象。

(function(){ 

    var someValue = 5; 

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

})(); 

執行立即功能後,您可以撥打myFunction()

2

或者,你可以做這樣的事情,這與牙醫提出的結果基本相同。

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}