Javascript Module 模式.如何访问模块内的全局变量
Javascript Module pattern. How to access globals inside the module
我看到了以下代码
var MODULE = (function () {
var my = {},
privateVariable = 1;
function privateMethod() {
// ...
}
my.moduleProperty = 1;
my.moduleMethod = function () {
// ...
};
return my;
}());
这些属性可以像MODULE.module属性...右?但是如何在模块内部访问全局变量 privateVariable 和 privateMethod()(它们是模块中的全局变量......对吧?
您只能从模块代码本身中访问它们,如下所示:
var MODULE = (function () {
var my = {},
privateVariable = 1;
function privateMethod() {
alert('this is private!');
}
my.moduleProperty = 1;
my.moduleMethod = function () {
privateMethod();
return privateVariable;
};
return my;
}());
这样做:
MODULE.moduleMethod();
将调用私有方法(并提醒"这是私有的!")并返回privateVariable的值。
没有办法在模块范围之外访问privateVariable或privateMethod。
var MODULE = (function() {
//...declare your module as above
}());
console.log(MODULE.privateVariable); //logs undefined
希望这有助于为您澄清它。
不,它们不是全局的,它们是匿名函数中的局部变量。
您可以从函数内的任何代码访问它们,但在函数外部无法直接访问它们。
相关文章:
- 带有全局变量、咖啡脚本和回调的模块 CSV
- 如何将全局变量放在Globals.js模块中,并在其他模块中访问它们
- 如何在 Node 中访问模块全局变量.js例如浏览器中的 window.variable
- TypeScript:从模块创建全局变量
- 可以在模块中运行.导出访问模块中的全局变量
- 对角度模块使用单个全局变量是否是一种反模式
- 什么被认为是在节点模块中共享“全局”变量的好方法
- 将模块安装为全局变量时遇到问题 -- /usr/bin/env 不是目录
- 在 TypeScript 中使用外部模块声明一个全局变量
- 节点模块包括数据文件作为全局变量
- Javascript Module 模式.如何访问模块内的全局变量
- 如何将代码包装到模块中以避免使用全局变量
- 使用 ES6 模块重新导出全局变量
- 如何从解析模块访问全局变量
- 对模块中全局变量的引用
- 如何在ES2015模块中使用全局变量
- Nodejs全局变量和模块
- 如何使用webpack将入口模块中的变量公开为全局变量
- 如何从requirejs模块访问全局变量
- 如果requireJS模块在$上设置了全局变量,我如何仅在全局变量被分配时执行模块代码