use*_*171 4 javascript variables global-variables local-variables
我对Javascript有些新意,我坚持这一项.有人可以告诉我如何使javascript变量仅在它所在的.js文件中可用.
例:
假设我有两个.js文件,PG1和PG2.PG1包含var channel = Channel01;
PG2包含一个具有相同名称的变量,但输入的变量不同(等号后面的部分)(var channel = Channel02)
我不希望PG1上的function1使用PG2上的变量或PG2上的function2来使用PG1上的变量.
我也是从单独的HTML页面调用这些函数.
问题:我的所有函数最终只使用一个变量,无论它们在哪个页面上.(例如,function1和function2都使用var channel = channel01)
问题:如何限制第1页上的函数仅使用该.js页面上的变量
谢谢!
将整个事物包装在一个立即调用的函数表达式中,这将有效地为文件提供自己的范围.
(function() {
// Your file's contents live here.
})();
Run Code Online (Sandbox Code Playgroud)
模块模式:
var myModule = (function(exports){
var x = "foo";
exports.myFunction = function(){
alert(x);
};
})(typeof exports!="undefined" && exports instanceof Object ? exports : window );
Run Code Online (Sandbox Code Playgroud)
myFunction将window在浏览器的范围内提供.
编辑
我引用作者的话说:"我也是从一个单独的HTML页面调用这些函数."
因此作者需要全局访问他定义的功能.
不需要var myModule,也不需要导出,只是为了兼容AMD:
(function(exports){
var x = "foo";
exports.myFunction = function(){
alert(x);
};
})(window);
Run Code Online (Sandbox Code Playgroud)
现在x for myFunction只存在于闭包中,但myFunction仍然可以在全局范围内访问x.全局范围内的任何x定义或任何范围都不会影响x = "foo"
| 归档时间: |
|
| 查看次数: |
3995 次 |
| 最近记录: |