我的页面中有两个js
文件html
。如果第一个以 开头:
(function($){
..
..
}(jQuery));
我可以插入一个var
到它的值并在另一个文件中使用它吗function($,varname)
?return
我的页面中有两个js
文件html
。如果第一个以 开头:
(function($){
..
..
}(jQuery));
我可以插入一个var
到它的值并在另一个文件中使用它吗function($,varname)
?return
为此,您需要一个全局变量。您可以通过以下几种方式之一执行此操作。假设我们需要将值“Bacon”发送到另一个脚本。
(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($,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()
假设你的函数是同步的,你可以设置一个全局函数:
(function($){
..
var myvar = 666;
window.getMyVar = function() {
return myvar;
};
..
}(jQuery));
如果在此之后导入第二个文件,您可以从另一个函数中使用它:
(function($){
..
var myprevisouslysetvar = window.getMyVar();
..
}(jQuery));
请注意,这些文件在 javascript 中无关紧要:您的页面将在两个文件连接的情况下以相同的方式工作(如果您有“使用严格”,则除了细节之外)。