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

时间:2020-06-20 23:50:56

标签: javascript browser

我正在学习客户端javascript,在一些教程中我注意到我们正在制作一个游戏,即使安装了webpack捆绑器,他们仍然会这样做:

// game.js
function Game() {
  // ... some code
}

module.exports = Game;

// index.js

const Game = require("./game.js");
window.Game = Game;

向窗口添加此类构造函数有什么意义?我们随时随地都可以要求它们,并使用webpack将它们捆绑在一起吗?

1 个答案:

答案 0 :(得分:1)

教程之所以这样做,是因为ES6模块脚本具有自己(“封闭”)的变量范围,不允许在其外部使用其对象。有关此主题的更多信息,请参见问题the browser console

有了window.Game = Game;Game实例在任何地方都可以访问,这对于通过{{3}}进行调试很有利,但是您不应该在已部署的软件版本中进行此操作。