我帮助管理其他程序员用来创建包含JavaScript的内容的内容管理系统(CMS)。从历史上看,我们将内容放入iFrame中以便包含它;现在它是一个单页客户端应用程序,JavaScript被插入到同一个窗口中。
现有的内容库很难开发,所以我试图在加载和/或查看几页内容后管理混乱的窗口对象或内存泄漏的可能性。
我正在考虑用自动执行的函数或类似的东西来包装JavaScript,我将其设置为'undefined'并删除(for example)。挑战在于我必须首先注入包装器,所以我不能只对脚本标签使用直接的ajax调用。这是否意味着我唯一的选择是将包装器作为字符串附加到JavaScript然后使用eval?我不想使用那种方法,但这里可能是合适的。
例如,如果脚本.js文件包含以下代码:
var global = true;
如果最终会成为:
(function() {
var global = true;
})();
它将不再是全球性的。
答案 0 :(得分:1)
如果要在JS中声明全局变量,则不应使用var
关键字:
global = true;
它在window
对象上创建一个可以在任何地方使用的属性。