2013-03-04 88 views
3

我在我的html页面有两个js文件。如果第一个开头:从js文件返回值

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

我可以插入一个varfunction($,varname)return它的价值,并在其他文件中使用它?

+2

不'return',但你可以将其指定为window'的'属性。 – 2013-03-04 12:16:27

回答

3

您需要一个全局变量。您可以通过几种方法之一来完成此操作。假设我们需要将值“培根”发送给另一个脚本。

(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)); 
1

假设你的函数时线,你可以设置一个全局函数:

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

,你可以从其他的功能,如果第二个文件是这样一个后进口使用它:

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

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

+0

编辑后更清晰,谢谢。 – steo 2013-03-04 12:21:59

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()