我正在学习客户端javascript,在一些教程中我注意到我们正在制作一个游戏,即使安装了webpack捆绑器,他们仍然会这样做:
// game.js
function Game() {
// ... some code
}
module.exports = Game;
// index.js
const Game = require("./game.js");
window.Game = Game;
向窗口添加此类构造函数有什么意义?我们随时随地都可以要求它们,并使用webpack将它们捆绑在一起吗?
答案 0 :(得分:1)
教程之所以这样做,是因为ES6模块脚本具有自己(“封闭”)的变量范围,不允许在其外部使用其对象。有关此主题的更多信息,请参见问题the browser console。
有了window.Game = Game;
,Game
实例在任何地方都可以访问,这对于通过{{3}}进行调试很有利,但是您不应该在已部署的软件版本中进行此操作。