首页 > 解决方案 > 是否可以更改最初相同范围的变量范围?

问题描述

我想知道是否可以使变量的范围超出模块脚本标记,或者是否可以以某种方式将其导出并导入另一个脚本标记。

我当前的代码是这样的:

<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,但它们没有任何区别。我还尝试将第一个脚本作为模块,但后来我无法访问,并且(我认为)没有办法使用导入/导出。constwindow.variable1

注意:如果没有其他选项,我只想将脚本分成单独的文件。

标签: javascriptscope

解决方案


由于variable1andvariable2被定义在同一范围内(在顶层),因此无法在其他地方仅访问一个而不能访问另一个 - 除非您将第一个脚本标记更改为类似

<script>
    var variable1 = 'first variable :)';
    (() => {
        var variable2 = 'second variable :)';
        // do stuff with variable2
    })();
    // variable2 cannot be seen outside
</script>

如果没有其他选项,我只想将脚本分成单独的文件

如果您正在制作相当专业的东西并且要编写的代码不是微不足道的,那么您应该考虑这是一个非常好的选择。我强烈推荐它,它使编写和维护代码的过程变得非常容易。是的,确实需要一些时间来弄清楚并习惯,但这是值得的,IMO。


推荐阅读