我在我的html
頁面有兩個js
文件。如果第一個開頭:從js文件返回值
(function($){
..
..
}(jQuery));
我可以插入一個var
到function($,varname)
,return
它的價值,並在其他文件中使用它?
我在我的html
頁面有兩個js
文件。如果第一個開頭:從js文件返回值
(function($){
..
..
}(jQuery));
我可以插入一個var
到function($,varname)
,return
它的價值,並在其他文件中使用它?
您需要一個全局變量。您可以通過幾種方法之一來完成此操作。假設我們需要將值「培根」發送給另一個腳本。
(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));
假設你的函數時線,你可以設置一個全局函數:
(function($){
..
var myvar = 666;
window.getMyVar = function() {
return myvar;
};
..
}(jQuery));
,你可以從其他的功能,如果第二個文件是這樣一個後進口使用它:
(function($){
..
var myprevisouslysetvar = window.getMyVar();
..
}(jQuery));
請注意,這些文件在javascript中無關緊要:您的頁面在連接兩個文件時的工作方式相同(除了「嚴格使用」之外的細節)。
編輯後更清晰,謝謝。 – steo 2013-03-04 12:21:59
可以提高使用全局命名空間肚裏像代碼:
(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()
不'return',但你可以將其指定爲window'的'屬性。 – 2013-03-04 12:16:27