向窗口添加属性有什么意义?



我正在学习客户端JavaScript,我注意到在一些教程中,假设我们正在制作一个游戏,即使有webpack bundler,他们仍然这样做:

// game.js
function Game() {
// ... some code
}
module.exports = Game;
// index.js
const Game = require("./game.js");
window.Game = Game;

将这样的构造函数添加到窗口有什么意义? 无论我们在哪里使用它,我们总是需要它们并使用 Webpack 来捆绑它们,对吗?

教程这样做,因为 ES6 模块脚本有自己的("封闭"(变量范围,不允许使用其外部的对象。有关此主题的更多信息,请参阅问题 ES6 模块范围。

有了window.Game = Game;Game实例就可以随处访问,这对于通过浏览器控制台进行调试非常有用,但是在部署的软件版本中,您不能这样做。

最新更新