【发布时间】:2021-09-18 22:23:54
【问题描述】:
我想知道我是否可以使变量的范围超出模块脚本标签,或者我是否可以以某种方式将其导出并导入另一个脚本标签。
我当前的代码是这样的:
<script>
var variable1 = 'first variable :)';
var variable2 = 'second variable :)';
</script>
<script>
// i want to be able to access variable1 here, but not variable2
</script>
这样的事情可能吗?
我已经尝试过var、let、const 和window.,但它们没有区别。
我还尝试将第一个脚本设为模块,但随后我无法访问 variable1,并且(我认为)无法使用导入/导出。
注意事项: 如果没有其他选择,我只想将脚本分成单独的文件。
【问题讨论】:
-
“如果你不想做某事,就不要做那件事”适用于此。如果您要使用内联脚本(我强烈建议您不要这样做),那么所有代码都具有相同的范围。不管你是否将它分散到多个
<script>标签上,那是 HTML 的东西,而不是 JS 的东西。但是,您真正想做的不是开始使用现代 JS 并将您的代码放在他们自己的文件中,如 modern ES modules,因此任何需要来自另一个范围的东西的东西都可以直接导入。 -
如果你确定,你可以回答这个问题,说我必须使用单独的文件
标签: javascript scope