【发布时间】:2018-10-15 06:33:53
【问题描述】:
简而言之,我有一个模块,我想在一个页面上多次重复使用它。在这个模块中,我有一个事件名称的全局常量。问题出现在声明此模块的第二次使用时,因为已经声明了常量。但是,我不能将它移到 if/else 中,因为范围界定会使常量无法在其他地方使用。我该怎么办?
我的问题的一些简单代码:
模块:
const THIS_IS_MY_EVENT = 'thisIsMyEvent';
// extra code down here
页面:(我使用 twig 引擎来包含文件,但我认为它不相关)
<script src="/path/to/file.js">
<script src="/path/to/file.js">
这在我的情况下肯定行不通:
if (typeof (THIS_IS_MY_EVENT) == undefined) {
const .... //this will limit the scope of my const
}
任何帮助将不胜感激。
【问题讨论】:
-
如果我的理解是正确的,那么将 const 存储在常量文件中并将其导入您喜欢的每个模块中怎么样?
-
@YarinDekel 这有什么不同?由于您要导入模块两次,因此您仍然需要将常量文件两次导入页面。我在您的情况下看到的解决方法是在 1 个文件中设置所有常量并将其直接导入页面本身。但这有点乱,恕我直言
-
@TreeNguyen 您可能误解了导入的工作原理。模块被缓存,内部代码只运行一次。
-
或者只使用 var, ;-)
-
是的,它完全违背了 const 的目的,在您实现 T.J.克劳德的回答。
标签: javascript scope constants