javascript - 如何在 jQuery 的文档就绪函数中使用模块中的(全局)变量?
问题描述
根据 SO question Global javascript variable inside document.ready,我应该能够在 jQuery 的文档就绪函数中使用全局变量。当我的变量在模块中声明时,我该如何做同样的事情?
<script type="module">
import settings from './config/settings.js';
var DAPP_VERSION = settings.version;
</script>
<script type="text/javascript">
var OTHER = 4;
</script>
<script type="text/javascript">
$(document).ready(function() {
console.log(OTHER);
console.log(DAPP_VERSION);
});
</script>
以上给了我:
未捕获的 ReferenceError:未定义 DAPP_VERSION
config/setting.js
包含:
export default {
version: "1.1",
rounds: 3,
cars: 20,
lapLenght: "short"
}
解决方案
当您使用type="module"
声明时,变量不会自动附加到全局范围,而是附加到模块范围(这是不同的)。
您必须将它们显式附加到窗口以避免歧义并使它们在整个应用程序中可见。
window.DAPP_VERSION = settings.version;
推荐阅读
- c++ - 存储在数组中的指针更改值 C++
- c++ - 尽管用户提供了扣除指南,但模板候选被忽略
- python-3.x - 如何使用 mypy 检查重载的单次调度
- visual-studio-code - 如何在 vscode 扩展中侦听调试适配器协议事件?
- reporting-services - 将 Dot Net 5 类库引用添加到 SSRS 报告中
- sql - 使用 CASE 语句进行 SQL DATE 转换/转换
- reactjs - Nextjs 动态函数导入(非组件)
- javascript - 如何将对象数组过滤到 MongoDB 文档中
- android - 来自CSV的字符串中的Android换行符
- javascript - 选择一个选项后,如何让我的 Popup 自动出现在 reactJS 中?Leaflet-js