2014-04-15 41 views
2

我在javascript中具有自調用函數,並且在同一個文件中我需要自調用函數內部的變量的值。我怎樣才能做到這一點?在自調用函數外部獲取變量和數組的值

編輯:所以我可以得到一個變量,但如何更多的變量或數組? 我在開始時也有一個分號,如何處理它: ;(function(){ ... })();

回答

0

不是簡單的功能,但之前定義的變量:

var a = 1; 
(function(){ /* do stuff and use a*/})(); 

function(){ 
    // use a again 
} 
0
var x = (function(y) { return y + 2; })(2); 
alert(x); 

工作就像這樣:

function addTwo(y) { return y + 2; } 
x = addTwo(2); 
1

您需要將其設置爲回報的一部分。根據您的具體模式可能去像

var app =(function(){ 

    var x = 5; 

    function app() { 

    } 

    app.x = x; 

    return app; 

})(); 
+0

爲什麼'app'被定義爲在這個例子中的函數嗎?爲什麼不只是一個對象? (例如'return {x:x};' – Ajedi32

+0

因爲使用這個模式,app是構造函數,因此,「取決於你的確切模式」。 –

0
//Your self invoking func 
(function(){ 
    var getStuff = holdsStuff(); 
    console.log(getStuff.a); //getStuff.b, getStuff.cArr etc; 
})(); 

//func in same file that holds the vars that you need. 
function holdsStuff(){ 
    var a = 10; 
    var b = 15; 
    var cArr = [1,2,3,4,5]; 
    return { a: a, b: b, cArr: cArr}; 
}