【问题标题】:return value from js file从 js 文件返回值
【发布时间】:2013-03-04 12:15:02
【问题描述】:

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

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

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

【问题讨论】:

  • 不是return,但您可以将其分配为window 的属性。

标签: javascript jquery html function


【解决方案1】:

为此,您需要一个全局变量。您可以通过以下几种方式之一执行此操作。假设我们需要将值“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));

【讨论】:

    【解决方案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()
    

    【讨论】:

      【解决方案3】:

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

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

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

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

      请注意,这些文件在 javascript 中无关紧要:您的页面在连接两个文件时会以相同的方式工作(如果您有“use strict”,则除了细节之外)。

      【讨论】:

        猜你喜欢
        • 2020-11-12
        • 2018-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-06
        相关资源
        最近更新 更多