如何在外部js文件中声明全局变量?
How does one declare a global variable from inside an external js file?
我想在外部javascript文件中声明一个全局变量,并在加载文件的主窗口中可以访问它。
到目前为止,下列方法都失败了
var foo = 'bar';
window.foo = 'bar';
似乎只有隐式全局变量才有效
foo = 'bar';
然而,人们似乎不建议使用隐式全局变量。在这种情况下我该怎么做呢?
你的解决方案应该工作得很好,他们在全局作用域中定义了一个变量,但你必须确保在脚本实际使用它们之前包含定义这些变量的JavaScript文件。可能您忘记包含所有的脚本文件,或者您只是在代码中有其他错误(检查浏览器的控制台是否有错误,Firefox中为F12)。
也就是说,使用全局变量是一个不好的做法。它使你的代码难以测试,难以调试,你的全局变量可能与第三方javascript库中的全局变量重叠(如果你正在使用它们中的任何一个)。
问题是我将IIFE附加到window,然后通过window而不是直接调用它。
window.foo = (function() {
return {
log: function() {
console.log('bar function');
}
};
})();
window.foo.log();
注意:这个例子实际上工作得很好,但由于我的IIFE的一些内容,它没有为我工作,直到我使用foo.log();
稍后我将详细研究这个问题。
相关文章:
- 如何将变量声明为全局变量
- 如何将变量声明为全局变量?用case foreach?Javascript
- 返回语句后的函数声明全局变量不会被覆盖
- 为什么Javascript代码打印'未定义'即使变量被声明为全局变量
- JavaScript 全局变量声明
- 如何从选择菜单选项动态声明全局变量
- 让 javascript 将(默认情况下)未声明的变量声明到当前本地范围(基于首次使用)而不是全局范围
- 声明全局变量
- 由全局范围内的 Web 应用程序声明的全局变量
- 是否有任何选项可以在煎茶触摸中声明全局变量
- 如何将值从一个函数传递到另一个具有对象的函数,而无需在 JS 中声明全局变量
- 如何在不声明全局变量的情况下将值从一个函数传递到另一个函数?
- 如何从函数内部声明全局变量
- 在页面初始化时声明全局变量
- 如何在javascript中正确声明全局变量
- 是否可以在Node/Express 4.0中声明全局变量?
- Javascript:在一个脚本中声明全局变量,并在另一个脚本中使用它
- 如何使用JS声明全局变量
- 在 .js 文件中声明全局变量是否不好
- 如何在外部js文件中声明全局变量?