使变量像窗口一样可访问

Make variable accessible like window

本文关键字:一样 访问 变量 窗口      更新时间:2023-09-26

假设index.html中有一个变量var car = 'VW'

index.html是我的应用程序的绑定,从那里我访问几个模块:

   <script>
    var car = 'VW';
    var Initializer = require('./js/initializer');
    Initializer.check_requirements();
   </script>

现在在initializer中,我尝试访问这个不工作的变量。

var Initializer = {
check_requirements: function(){console.log(car)};
};
module.exports = Initializer;

然而,当我将变量car附加到window时:

window.car = 'VW';

然后我可以通过window.car在我的模块中访问它;

我如何创建一个全局变量car,我也可以在我的模块访问,这样我就不必附加到window ?由于

在浏览器上下文中,"global"变量实际上是window对象的一个属性,它充当全局上下文。您在问题中的语法,即HTML页面中脚本标记中的裸var语句,实际上将该var名称添加为窗口的属性。然而,由于你在这里使用的是看起来像CommonJS require语句,这在大多数浏览器中不是本地支持的,可能有一个编译步骤,你没有包括在你的问题中,这阻止了你的工作方式。

然而,简短的回答是,如果可以避免,就不要这样做。全局变量的大多数应用最好是通过参数完成的,例如Initializer.check_requirements(car);,或者在一个单独的模块中存储配置设置,或者其他方法。