2013-03-04 91 views
3

我在我的html頁面有兩個js文件。如果第一個開頭:從js文件返回值

(function($){ 
    .. 
    .. 
    }(jQuery)); 

我可以插入一個varfunction($,varname)return它的價值,並在其他文件中使用它?

+2

不'return',但你可以將其指定爲window'的'屬性。 – 2013-03-04 12:16:27

回答

3

您需要一個全局變量。您可以通過幾種方法之一來完成此操作。假設我們需要將值「培根」發送給另一個腳本。

(function($){ 
    window.myScriptsExports = "Bacon"; 
}(jQuery)); 

// OR 

var myScriptsExports = (function($){ 
    // other code 
    return "Bacon"; 
    // NO other code 
}(jQuery)); 

// OR (not really recommended) 

(function($){ 
    // other code 
    $.myScriptsExports = "Bacon"; 
    // other code 
}(jQuery)); 
1

假設你的函數時線,你可以設置一個全局函數:

(function($){ 
    .. 
     var myvar = 666; 
     window.getMyVar = function() { 
     return myvar; 
     }; 
    .. 
    }(jQuery)); 

,你可以從其他的功能,如果第二個文件是這樣一個後進口使用它:

(function($){ 
    .. 
     var myprevisouslysetvar = window.getMyVar(); 
    .. 
    }(jQuery)); 

請注意,這些文件在javascript中無關緊要:您的頁面在連接兩個文件時的工作方式相同(除了「嚴格使用」之外的細節)。

+0

編輯後更清晰,謝謝。 – steo 2013-03-04 12:21:59

2

可以提高使用全局命名空間肚裏像代碼:

(function($,global){ 
     var _obj = {}; 
     _obj.property1 = 'Property1'; 
     _obj.function1 = function() { console.log('Function 1');}; 
     global.myObject = _obj; 
    }(jQuery,window)); 

    //accessing 
    window.myObject.property1 
    //or 
    window.myObject.function1()