【发布时间】:2016-02-20 22:07:46
【问题描述】:
如果我想将我的 JavaScript 项目跨越多个源文件,但每个文件都可以访问同一个私有变量,该怎么做?
例如,如果我有以下代码:
APP = (function () {
var _secret = {},
app = {};
// Application part 01:
app.part01 = (function () { /* function that uses _secret */ }());
// Application part 02:
app.part02 = (function () { /* function that uses _secret */ }());
//
return app;
}());
如何将app.part01 和app.part02 放在单独的文件中,但仍然可以访问_secret?
我不想将其作为论据传递。这只是泄露了秘密,因为app.part01() 可以被任何其他函数替换。
也许我问的是不可能的事,但你的建议可能会引导我走上正确的道路。
我想处理多个文件,但我不知道如何操作。每次在测试之前复制和粘贴单个函数中的所有内容不是我想做的事情。
【问题讨论】:
-
JS有私有变量吗?这是一个反问...
-
那我怎么称呼他们呢?局部变量?
-
如果这就是你的意思,听起来更可行。
-
只是 .. 在创建对象时传递它们?或者,如果间接性太多,将它们存储在对象可以访问的值存储中(通过要求、导入、全局命名空间、事件回调等)?
-
由于您现在正在工作,无法在文件之间共享_secret,请看:未附加到窗口的变量,无法共享。而且你有一个闭包,所以 _secret 肯定不在窗口。
标签: javascript scope