3

我的页面中有两个js文件html。如果第一个以 开头:

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

我可以插入一个var到它的值并在另一个文件中使用它吗function($,varname)return

4

3 回答 3

3

为此,您需要一个全局变量。您可以通过以下几种方式之一执行此操作。假设我们需要将值“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));
于 2013-03-04T12:19:59.040 回答
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()
于 2013-03-04T12:27:33.437 回答
1

假设你的函数是同步的,你可以设置一个全局函数:

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

如果在此之后导入第二个文件,您可以从另一个函数中使用它:

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

请注意,这些文件在 javascript 中无关紧要:您的页面将在两个文件连接的情况下以相同的方式工作(如果您有“使用严格”,则除了细节之外)。

于 2013-03-04T12:17:48.950 回答