3

ページに2つのjsファイルがありhtmlます。最初のものがで始まる場合:

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

にを挿入しvarfunction($,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));

このファイルの後に 2 番目のファイルがインポートされた場合は、他の関数から使用できます。

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

ファイルは javascript では問題にならないことに注意してください。ページは、両方のファイルが連結された状態で同じように動作します ("use strict" の場合は詳細を除いて)。

于 2013-03-04T12:17:48.950 に答える